Pietro Ferrara created BCEL-289: ----------------------------------- Summary: Crash when parsing constructor of inner classes with parameters annotated Key: BCEL-289 URL: https://issues.apache.org/jira/browse/BCEL-289 Project: Commons BCEL Issue Type: Bug Components: Parser Affects Versions: 6.0 Reporter: Pietro Ferrara Priority: Critical Fix For: 6.1
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) -- This message was sent by Atlassian JIRA (v6.3.15#6346)