You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Tony Abbott (JIRA)" <ji...@apache.org> on 2018/05/29 07:45:00 UTC

[jira] [Created] (GROOVY-8614) Invalid reference generated in InnerClasses attribute for nested interface

Tony Abbott created GROOVY-8614:
-----------------------------------

             Summary: Invalid reference generated in InnerClasses attribute for nested interface
                 Key: GROOVY-8614
                 URL: https://issues.apache.org/jira/browse/GROOVY-8614
             Project: Groovy
          Issue Type: Bug
          Components: class generator
    Affects Versions: 2.4.15
            Reporter: Tony Abbott


Compiling a class with a nested interface results in a reference to a non-existent inner class "X$Y$1" in the InnerClasses attribute of the resultant class file. Nested classes and inner classes do not exhibit this problem, only nested interfaces.

Sample class that demonstrates the problem:
{code:java}
class X {
    interface Y {}
}
{code}
Examining the resultant class file:
{noformat}
$ javap -v -cp . X.class
...
SourceFile: "X.groovy"
InnerClasses:
     public #139= #138 of #2; //Y=class X$Y of class X
     static #142= #141 of #2; //1=class X$Y$1 of class X
{noformat}
There is a reference to "X$Y$1" which does not exist. This breaks some tools, for example JUnit 5 test discovery.

 

It looks to me like this is related to https://issues.apache.org/jira/browse/GROOVY-5082, being the same bug just manifesting for nested interfaces.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)