Community
Participate
Working Groups
I am getting following error when compiling code using iajc ant task: [iajc.task] trouble in: [iajc.task] public class admin.modelbean.AdminUserMB extends web.FormSupport: [iajc.task] private static final org.apache.log4j.Logger log .... (Ljava/lang/String;)Ljava/lang/StringBuffer; [iajc.task] | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String)) [iajc.task] | LDC_W "}" (line 249) [iajc.task] | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String)) [iajc.task] | | INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer; [iajc.task] | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String)) [iajc.task] | method-call(java.lang.String java.lang.StringBuffer.toString()) [iajc.task] | | INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String; (line 236) [iajc.task] | method-call(java.lang.String java.lang.StringBuffer.toString()) [iajc.task] | ARETURN [iajc.task] method-execution(java.lang.String admin.modelbean.AdminUserMB.toString()) [iajc.task] end public String toString() [iajc.task] end public class admin.modelbean.AdminUserMB [iajc.task] java.lang.RuntimeException: Ranges must be updated with an enclosing instructionList [iajc.task] at org.aspectj.weaver.bcel.Range.updateTarget(Range.java:170) [iajc.task] at org.aspectj.weaver.bcel.BcelShadow.retargetFrom(BcelShadow.java:235) [iajc.task] at org.aspectj.weaver.bcel.BcelShadow.deleteNewAndDup(BcelShadow.java:212) [iajc.task] at org.aspectj.weaver.bcel.BcelShadow.prepareForMungers(BcelShadow.java:252) [iajc.task] at org.aspectj.weaver.Shadow.implement(Shadow.java:374) [iajc.task] at org.aspectj.weaver.bcel.BcelClassWeaver.implement(BcelClassWeaver.java:1754) [iajc.task] at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:393) [iajc.task] at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:96) [iajc.task] at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1372) [iajc.task] at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1337) [iajc.task] at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1114) [iajc.task] at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1001) [iajc.task] at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.weave(AjCompilerAdapter.java:286) [iajc.task] at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.afterCompiling(AjCompilerAdapter.java:165) [iajc.task] at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$afterReturning$org_aspectj_ajdt_internal_compiler_CompilerAdapter$2$f9cc9ca0(CompilerAdapter.aj:70) [iajc.task] at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:367) [iajc.task] at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:728) [iajc.task] at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:206) [iajc.task] at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:140) [iajc.task] at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:112) [iajc.task] at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60) [iajc.task] at org.aspectj.tools.ajc.Main.run(Main.java:324) [iajc.task] at org.aspectj.tools.ajc.Main.runMain(Main.java:238) [iajc.task] at org.aspectj.tools.ajc.Main.main(Main.java:82) [iajc.task] ABORT [iajc.task] [iajc.task] Exception thrown from AspectJ 1.5.0_M3a [iajc.task] This might be logged as a bug already -- find current bugs at [iajc.task] http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Compiler [iajc.task] Bugs for exceptions thrown have titles File:line from the top stack, [iajc.task] e.g., "SomeFile.java:243" [iajc.task] If you don't find the exception below in a bug, please add a new bug [iajc.task] at http://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ [iajc.task] To make the bug a priority, please include a test program [iajc.task] that can reproduce this exception. [iajc.task] Ranges must be updated with an enclosing instructionList [iajc.task] Ranges must be updated with an enclosing instructionList [iajc.task] java.lang.RuntimeException: Ranges must be updated with an enclosing instructionList [iajc.task] at org.aspectj.weaver.bcel.Range.updateTarget(Range.java:170) [iajc.task] at org.aspectj.weaver.bcel.BcelShadow.retargetFrom(BcelShadow.java:235) [iajc.task] at org.aspectj.weaver.bcel.BcelShadow.deleteNewAndDup(BcelShadow.java:212) [iajc.task] at org.aspectj.weaver.bcel.BcelShadow.prepareForMungers(BcelShadow.java:252) [iajc.task] at org.aspectj.weaver.Shadow.implement(Shadow.java:374) [iajc.task] at org.aspectj.weaver.bcel.BcelClassWeaver.implement(BcelClassWeaver.java:1754) [iajc.task] at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:393) [iajc.task] at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:96) [iajc.task] at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1372) [iajc.task] at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1337) [iajc.task] at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1114) [iajc.task] at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1001) [iajc.task] at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.weave(AjCompilerAdapter.java:286) [iajc.task] at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.afterCompiling(AjCompilerAdapter.java:165) [iajc.task] at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$afterReturning$org_aspectj_ajdt_internal_compiler_CompilerAdapter$2$f9cc9ca0(CompilerAdapter.aj:70) [iajc.task] at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:367) [iajc.task] at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:728) [iajc.task] at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:206) [iajc.task] at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:140) [iajc.task] at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:112) [iajc.task] at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60) [iajc.task] at org.aspectj.tools.ajc.Main.run(Main.java:324) [iajc.task] at org.aspectj.tools.ajc.Main.runMain(Main.java:238) [iajc.task] at org.aspectj.tools.ajc.Main.main(Main.java:82) [iajc.task] 1 fail|abort BUILD FAILED /home/sbhatti/workspace/devint/build.xml:100: The following error occurred while executing this line: /home/sbhatti/workspace/devint/build.xml:164: The following error occurred while executing this line: /home/sbhatti/workspace/devint/modules/novo/build.xml:59: The following error occurred while executing this line: /opt/sbhatti/dev/current/novo/build.xml:326: failure[-1] running ajc
Passing over to AspectJ
It is blowing up whilst processing the shadow for a constructor call - is there anyway we can have the rest of the iajc output? At the top of the input it looks it was truncated so you just added the exception trace to the bug report - but if you include the earlier stuff (where the "| method-call" stuff is), I may be able to see what went wrong. Is it at all possible that you could attach the AdminUserMB class and the aspect you used on it?
Created attachment 27178 [details] Class that is failing to compile
Created attachment 27179 [details] Aspect
Looks like a compiler bug, not an ant task bug. Let me know if I can help.
We have recently added extra diagnostics to AspectJ that will give us more context about a failure when the compiler goes bang. Can you possibly download the latest dev build and recreate this? Hopefully the exception produced will be more informative.
moving to P2
I've been trying to recreate this. I can use the aspect just about as is - but the AdminUserDB class just has too many dependencies. I created a cut down version but can't get a failure. Is it still failing for you? Please can you try it with the most recent compiler version and include *all* the output here so I can see exactly which constructor-call shadow is causing the problem? I really want to fix this for 1.5 - but if I can't recreate it, theres nothing I can do. What would also be helpful is to try trimming down the code in the AdminUserDB class and see when the error suddenly disappears. or if you could supply me all the dependencies for that class (the orbitz stuff) then I can try harder to recreate it here.
I've recreated this (woohoo) using the comment on bug 93489. I'll work on it tmrw.
Fix for this is checked in.
fix available.