groovy

Groovy objects trying to override final methods

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 1.0, 1.1-rc-2
  • Fix Version/s: 1.5
  • 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 :
    1

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

Issue Links

Activity

Hide
Graeme Rocher added a comment -

IMO this issue effects our java integration story and needs to be fixed for 1.1

Show
Graeme Rocher added a comment - IMO this issue effects our java integration story and needs to be fixed for 1.1
Hide
blackdrag blackdrag added a comment -

fixed

Show
blackdrag blackdrag added a comment - fixed

People

Vote (0)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: