Bug 109614 - [waiting-on-build] [iajc.task] java.lang.RuntimeException: Ranges must be updated with an enclosing instructionList
Summary: [waiting-on-build] [iajc.task] java.lang.RuntimeException: Ranges must be upd...
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P2 major (vote)
Target Milestone: 1.5.0RC1   Edit
Assignee: Andrew Clement CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-09-15 09:57 EDT by shahzad bhatti CLA
Modified: 2005-12-08 10:17 EST (History)
0 users

See Also:


Attachments
Class that is failing to compile (8.63 KB, text/plain)
2005-09-15 13:30 EDT, shahzad bhatti CLA
no flags Details
Aspect (6.54 KB, text/plain)
2005-09-15 13:31 EDT, shahzad bhatti CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description shahzad bhatti CLA 2005-09-15 09:57:46 EDT
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
Comment 1 Matt Chapman CLA 2005-09-15 11:07:27 EDT
Passing over to AspectJ
Comment 2 Andrew Clement CLA 2005-09-15 12:22:30 EDT
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?
Comment 3 shahzad bhatti CLA 2005-09-15 13:30:48 EDT
Created attachment 27178 [details]
Class that is failing to compile
Comment 4 shahzad bhatti CLA 2005-09-15 13:31:24 EDT
Created attachment 27179 [details]
Aspect
Comment 5 Wes Isberg CLA 2005-09-19 01:44:21 EDT
Looks like a compiler bug, not an ant task bug.  Let me know if I can help.
Comment 6 Andrew Clement CLA 2005-09-30 08:46:44 EDT
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.
Comment 7 Adrian Colyer CLA 2005-10-28 07:10:08 EDT
moving to P2
Comment 8 Andrew Clement CLA 2005-11-29 03:46:20 EST
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.
Comment 9 Andrew Clement CLA 2005-12-07 12:26:17 EST
I've recreated this (woohoo) using the comment on bug 93489. I'll work on it tmrw.
Comment 10 Andrew Clement CLA 2005-12-08 06:43:39 EST
Fix for this is checked in.
Comment 11 Andrew Clement CLA 2005-12-08 10:17:40 EST
fix available.