Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-3448

Verify error calling super

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • None
    • None
    • regular expressions
    • 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()

      { // does soemthing }

      }

      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

      Attachments

        Activity

          People

            blackdrag Jochen Theodorou
            matt.corby Matthew Corby-Eaglen
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: