Uploaded image for project: 'Commons BCEL'
  1. Commons BCEL
  2. BCEL-285

"ClassFormatException: Invalid signature" thrown on generics

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 6.0
    • None
    • Parser
    • None
    • java 8, macOS 10.12.2

    • major

    Description

      The following stripped down example throws an Exception in BCEL:

      Bar.java
      import java.io.IOException;
      import java.util.stream.Stream;
      import org.apache.bcel.classfile.ClassParser;
      
      public class Main {
        public static void main(String[] args) throws IOException {
          ClassParser parser = new ClassParser(Main.class.getResourceAsStream("Main.class"), "Main.class");
          parser.parse().getMethods()[2].getCode().toString(); /* <- EXCEPTION thrown */
      		
          ((Stream<? extends Object>)null).peek(x -> {}); /* <- problem spot */
        }
      }
      

      The exception is:

      Exception in thread "main" org.apache.bcel.classfile.ClassFormatException: Invalid signature: `!+Ljava/lang/Object;'
      	at org.apache.bcel.classfile.Utility.signatureToString(Utility.java:930)
      	at org.apache.bcel.classfile.LocalVariable.toStringShared(LocalVariable.java:187)
      	at org.apache.bcel.classfile.LocalVariableTypeTable.toString(LocalVariableTypeTable.java:121)
      	at java.lang.String.valueOf(String.java:2994)
      	at java.lang.StringBuilder.append(StringBuilder.java:131)
      	at org.apache.bcel.classfile.Code.toString(Code.java:316)
      	at org.apache.bcel.classfile.Code.toString(Code.java:328)
      	at Main.main(Main.java:9)
      

      This problem only occurs in eclipse (I am using NEON.2) and does not occur in Intellij (I am using 2016.3.2). This probably indicates that ecj and javac differ in their class code generator.

      Since our project uses sonar:findbugs which uses BCEL this is a major problem for us.

      Attachments

        Activity

          People

            Unassigned Unassigned
            tombrus Tom Brus
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: