Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.5.6, 1.6-beta-1
-
Fix Version/s: 1.5.7, 1.6-beta-2
-
Component/s: class generator, command line processing
-
Labels:None
-
Environment:Windows XP
Groovy Version: 1.0 JVM: 1.6.0-b105
Groovy Version: 1.1-rc-2 JVM: 1.6.0-b105
-
Number of attachments :
Description
Using a java framework that defines a class like this
public class FrameworkComponent {
// lots of fields
// lots of methods
public final Object getProperty(String name) { return frameworkStuff.get(name); }
// lots of other fields
// lots of other methods
}
If one tries to create a Groovy class that extends this
FrameworkComponent like the following:
class MyComponent extends FrameworkComponent {
def size = 10
}
the groovy compiler raises an error saying that MyComponent
overrides final method getProperty(String name) from
FrameworkComponent.
Attached to this issue follows bug.zip containing a mockup of this
framework and a Groovy class that extends the framework class.
To reproduce the error just unzip the file, navigate to the unzipped folder
and fire:
groovyc -cp framework.jar MyComponent.groovy
it will raise the following error lines
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, MyComponent.groovy: -1: You are not allowed to overwrite the final method getProperty(java.lang.String) from class 'FrameworkComponent'.
@ line -1, column -1.
1 error
Attachments
Issue Links
| This issue supercedes: | ||||
| GROOVY-2326 | Groovy objects trying to override final methods |
|
|
|
Original task: http://jira.codehaus.org/browse/GROOVY-2326 claims this is fixed, but it is still reproducable with current stable version 1.5.6 and 1.6 beta.