Hi,
I am trying to upgrade our application from JBoss version 4.0.4 to run on JBoss version
4.2.1 which appears to use JBoss AOP 1.5.5.GA (which, by the way, doesn't show up on
the JBoss AOP Downloads page.)
One of our classes can no longer be aspectized by aopc. I have managed to extract a small
example class that demonstrates this problem (TestClass.java):
| import java.util.List;
| import java.util.Map;
|
| public class TestClass
| {
| List myList = null;
| Map myMap = null;
|
| public void function(Integer one, Integer two)
| {
| int index = 3;
| for (; index > 0; index--)
| {
| Integer key = (Integer) myList.get( index - 1);
| ((Double)myMap.get( key)).doubleValue();
| }
| }
| }
|
And here is my replication-aop.xml file:
| <?xml version="1.0" encoding="UTF-8"?>
| <aop>
| <prepare expr="field(* TestClass->myList)" />
| <prepare expr="field(* TestClass->myMap)" />
| </aop>
|
when I run aopc like this:
| aopc15.sh <path-to-test> -aoppath <path-to-test>/replication-aop.xml
-aopclasspath <path-to-test> <path-to-test>/TestClass.class
|
I get this exception:
anonymous wrote :
| Exception in thread "main" java.lang.RuntimeException: failed to transform:
TestClass
| at org.jboss.aop.instrument.Instrumentor.transform(Instrumentor.java:777)
| at org.jboss.aop.AspectManager.translate(AspectManager.java:909)
| at org.jboss.aop.AspectManager.transform(AspectManager.java:821)
| at org.jboss.aop.standalone.Compiler.compileFile(Compiler.java:345)
| at org.jboss.aop.standalone.Compiler.compile(Compiler.java:234)
| at org.jboss.aop.standalone.Compiler.main(Compiler.java:90)
| Caused by: java.lang.ArrayIndexOutOfBoundsException: 7
| at javassist.bytecode.ByteArray.write16bit(ByteArray.java:40)
| at javassist.bytecode.StackMapTable$Shifter.update(StackMapTable.java:703)
| at javassist.bytecode.StackMapTable$Shifter.sameFrame(StackMapTable.java:679)
| at
javassist.bytecode.StackMapTable$Walker.stackMapFrames(StackMapTable.java:191)
| at javassist.bytecode.StackMapTable$Walker.parse(StackMapTable.java:176)
| at javassist.bytecode.StackMapTable$Shifter.doit(StackMapTable.java:673)
| at javassist.bytecode.StackMapTable.shiftPc(StackMapTable.java:652)
| at javassist.bytecode.CodeIterator.insertGap0(CodeIterator.java:676)
| at javassist.bytecode.CodeIterator.insertGap(CodeIterator.java:636)
| at javassist.bytecode.CodeIterator.insertGapCore(CodeIterator.java:467)
| at javassist.bytecode.CodeIterator.insertGap(CodeIterator.java:413)
| at javassist.expr.Expr.replace0(Expr.java:285)
| at javassist.expr.FieldAccess.replace(FieldAccess.java:212)
| at
org.jboss.aop.instrument.OptimizedFieldAccessTransformer$OptimizedFieldAccessExprEditor.replaceRead(OptimizedFieldAccessTransformer.java:321)
| at
org.jboss.aop.instrument.FieldAccessTransformer$FieldAccessExprEditor.edit(FieldAccessTransformer.java:622)
| at javassist.expr.ExprEditor.loopBody(ExprEditor.java:188)
| at javassist.expr.ExprEditor.doit(ExprEditor.java:90)
| at javassist.CtClassType.instrument(CtClassType.java:1224)
| at
org.jboss.aop.instrument.OptimizedFieldAccessTransformer.replaceFieldAccessInternally(OptimizedFieldAccessTransformer.java:293)
| at
org.jboss.aop.instrument.OptimizedFieldAccessTransformer.doBuildFieldWrappers(OptimizedFieldAccessTransformer.java:99)
| at
org.jboss.aop.instrument.FieldAccessTransformer.buildFieldWrappers(FieldAccessTransformer.java:100)
| at org.jboss.aop.instrument.Instrumentor.transform(Instrumentor.java:730)
| ... 5 more
|
I looks like this problem was introduced in JBoss AOP 1.5.4.GA. In earlier versions this
worked fine. I am wondering if I am doing something wrong, or missing something, or if I
should add this as a new bug in JIRA?
Thanks,
-Eric
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4066784#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...