Description
BCEL crashes when parsing the constructor of an inner class whose parameters are annotated. For instance, when parsing the jar obtained from the following classes:
public @interface A {} public @interface B {} public class Test { public class Inner { public Inner(@A Object a, @B Object b) {} } }
In particular:
ClassParser cp = new ClassParser(args[0]); ClassGen cg = new ClassGen(cp.parse()); MethodGen mg = new MethodGen(cg.getMethodAt(0), cg.getClassName(), cg.getConstantPool()); mg.getAnnotationsOnParameter(0);
(where args[0] points to Test$Inner.class)
you get
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 at org.apache.bcel.generic.MethodGen.ensureExistingParameterAnnotationsUnpacked(MethodGen.java:1120) at org.apache.bcel.generic.MethodGen.getAnnotationsOnParameter(MethodGen.java:1073)
Attachments
Issue Links
- links to