While executing the following code in 2.4.4

abstract class Module {
    abstract String getModuleName()
}
class Master extends Module {
    String title
    String track
}    
def master = new Master(title: "Hello", track: "1")
println master.title

I receive the following error message

Abstract method 'java.lang.String getModuleName()' is not implemented but a method of the same name but different return type is defined: method 'java.lang.String getModuleName()'

However, when I execute the code in version 2.2.2, I receive the following error message

Can't have an abstract method in a non-abstract class. The class 'Master' must be declared abstract or the method 'java.lang.String getModuleName()' must be implemented.

The second of the two error messages seems a bit clearer to me.

With respect to version 2.4.4, is this expected behavior or is this a defect?