Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Cannot Reproduce
-
None
-
None
-
None
Description
I have one class that overloads a groovy class, and another that overloads and calls super on the parent.
so in affect we have:
abstract class A extends X implements Y{
doSomethign()
}
class B extends A{
doSomething()
{ super.doSomething(); }}
I get the following error:
{{{
Exception in thread "main" java.lang.VerifyError: (class: B, method: super$3$getProperty signature: (Ljava/lang/String;)Ljava/lang/Object Illegal use of nonvirtual function call
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
at java.lang.Class.getDeclaredFields(Class.java:1743)
at org.codehaus.groovy.vmplugin.v5.Java5.configureClassNode(Java5.java:260)
at org.codehaus.groovy.ast.ClassNode.lazyClassInit(ClassNode.java:253)
at org.codehaus.groovy.ast.ClassNode.getDeclaredMethods(ClassNode.java:746)
at org.codehaus.groovy.ast.ClassNode.getMethods(ClassNode.java:761)
at org.codehaus.groovy.ast.ClassNode.hasPossibleMethod(ClassNode.java:1060)
at org.codehaus.groovy.control.StaticImportVisitor.transformMethodCallExpression(StaticImportVisitor.java:129)
at org.codehaus.groovy.control.StaticImportVisitor.transform(StaticImportVisitor.java:68)
at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:148)
at org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40)
at org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:38)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:129)
at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:52)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:73)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:80)
at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:53)
at org.codehaus.groovy.control.StaticImportVisitor.visitConstructorOrMethod(StaticImportVisitor.java:55)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:88)
at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:965)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:48)
at org.codehaus.groovy.control.StaticImportVisitor.visitClass(StaticImportVisitor.java:50)
at org.codehaus.groovy.control.CompilationUnit$6.call(CompilationUnit.java:566)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:914)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:464)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:281)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:252)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:247)
at groovy.util.GroovyScriptEngine.updateCacheEntry(GroovyScriptEngine.java:333)
at groovy.util.GroovyScriptEngine.loadScriptByName(GroovyScriptEngine.java:282)
}}}
any ideas?
m