[jira] [Updated] (BCEL-289) Crash when parsing constructor of inner classes with parameters annotated

2017-05-19 Thread Bruno P. Kinoshita (JIRA)

 [ 
https://issues.apache.org/jira/browse/BCEL-289?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bruno P. Kinoshita updated BCEL-289:

Assignee: Bruno P. Kinoshita

> 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
>Assignee: Bruno P. Kinoshita
>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:
> {code:java}
> public @interface A {}
> public @interface B {}
> public class Test {
> public class Inner {
>   public Inner(@A Object a, @B Object b) {}
> }
> }
> {code}
> In particular:
> {code:java}
>   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);
> {code}
> (where args\[0\] points to Test$Inner.class)
> you get
> {noformat}
> 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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (BCEL-289) Crash when parsing constructor of inner classes with parameters annotated

2017-05-16 Thread Bruno P. Kinoshita (JIRA)

 [ 
https://issues.apache.org/jira/browse/BCEL-289?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bruno P. Kinoshita updated BCEL-289:

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:

{code:java}
public @interface A {}
public @interface B {}
public class Test {
public class Inner {
public Inner(@A Object a, @B Object b) {}
}
}
{code}

In particular:

{code:java}
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);
{code}

(where args\[0\] points to Test$Inner.class)

you get

{noformat}
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)
{noformat}

  was:
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)


> 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:
> {code:java}
> public @interface A {}
> public @interface B {}
> public class Test {
> public class Inner {
>   public Inner(@A Object a, @B Object b) {}
> }
> }
> {code}
> In particular:
> {code:java}
>   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);
> {code}
> (where args\[0\] points to Test$Inner.class)
> you get
> {noformat}
> 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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)