groovy

Javac doesn't see synthetic Groovy methods in Groovy-compiled superclass

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Duplicate
  • Affects Version/s: 1.6-rc-2
  • Fix Version/s: 1.6.6, 1.7-rc-1
  • Component/s: None
  • Labels:
    None
  • Number of attachments :
    0

Description

Create a Foo.groovy class containing:

abstract class Foo {}

and Bar.java with:

class Bar extends Foo {}.

After that you compile the first file with groovyc (1.6) and the other one
with javac (1.5 or 1.6):

C:\sdks\groovy-1.6-RC-1>set GROOVY_HOME=c:\sdks\groovy-1.6-RC-1\

C:\sdks\groovy-1.6-RC-1\bin>set path=c:\sdks\groovy-1.6-RC-1\bin\;%path%

C:\temp>groovyc Foo.groovy

C:\temp>c:\jdk1.5.0_08\bin\javac.exe -classpath c:\sdks\groovy-1.6-RC-1\embeddable\groovy-all-1.6-RC-1.jar;. Bar.java
Bar.java:1: Bar is not abstract and does not override abstract method setMetaClass(groovy.lang.MetaClass) in groovy.lang.GroovyObject
class Bar extends Foo {}
^
1 error

Foo.jad contains the required setMetaClass method, but it's synthetic. Javac doesn't consider synthetic methods to be the ones already implementing what it wants. The abstractness of Foo is important, otherwise everything works. The same may apply not only to GroovyObject MOP methods, but also to generated property accessors.

Issue Links

Activity

Hide
blackdrag blackdrag added a comment -

we have to either remove the synthetic flag from these methods or do that only for abstract classes. I would do the later.

Show
blackdrag blackdrag added a comment - we have to either remove the synthetic flag from these methods or do that only for abstract classes. I would do the later.
Hide
Roshan Dawrani added a comment -

This issue has now been fixed under GROOVY-3877 - so, I guess, this one can be marked duplicate and closed.

Show
Roshan Dawrani added a comment - This issue has now been fixed under GROOVY-3877 - so, I guess, this one can be marked duplicate and closed.
Hide
Roshan Dawrani added a comment -

Duplicate - fixed under GROOVY-3877.

Show
Roshan Dawrani added a comment - Duplicate - fixed under GROOVY-3877.

People

Vote (2)
Watch (2)

Dates

  • Created:
    Updated:
    Resolved: