Community
Participate
Working Groups
this test file (Test.java) crashes the weaver: public class Test { static aspect MockProcessing { pointcut testFlow(final Thread thread) : cflow(execution(void run()) && this(thread) && within(Thread)); // the within is an optimization Object around() : call(* DummyConfiguration.createRootApplicationModule(..)) && testFlow(Thread) { return null; } } } class Bar { void foo() { DummyConfiguration.createRootApplicationModule(); } } class DummyConfiguration { static Object createRootApplicationModule() { return null; } } prompt>ajc -d 11bin -1.4 Test.java Exception thrown from AspectJ 1.1rc1 This might be logged as a bug already -- find current bugs at http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Compiler Bugs for exceptions thrown have titles File:line from the top stack, e.g., "SomeFile.java:243" If you don't find the exception below in a bug, please add a new bug at http://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ To make the bug a priority, please include a test program that can reproduce this exception. 0 0 java.lang.ArrayIndexOutOfBoundsException: 0 at org.aspectj.weaver.IntMap.get(IntMap.java:109) at org.aspectj.weaver.patterns.CflowPointcut.concretize1(CflowPointcut.j ava:170) at org.aspectj.weaver.patterns.ReferencePointcut.concretize1(ReferencePo intcut.java:270) at org.aspectj.weaver.patterns.AndPointcut.concretize1(AndPointcut.java: 88) at org.aspectj.weaver.patterns.Pointcut.concretize(Pointcut.java:127) at org.aspectj.weaver.patterns.Pointcut.concretize(Pointcut.java:120) at org.aspectj.weaver.Advice.concretize(Advice.java:207) at org.aspectj.weaver.CrosscuttingMembers.addShadowMunger(CrosscuttingMe mbers.java:78) at org.aspectj.weaver.CrosscuttingMembers.addShadowMungers(CrosscuttingM embers.java:72) at org.aspectj.weaver.ResolvedTypeX.collectCrosscuttingMembers(ResolvedT ypeX.java:328) at org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect(Crosscut tingMembersSet.java:54) at org.aspectj.weaver.bcel.BcelWeaver.prepareForWeave(BcelWeaver.java:16 4) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:214) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.weaveAndGenerat eClassFiles(AjBuildManager.java:394) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBu ildManager.java:149) at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:55) at org.aspectj.tools.ajc.Main.run(Main.java:216) at org.aspectj.tools.ajc.Main.runMain(Main.java:155) at org.aspectj.tools.ajc.Main.main(Main.java:72) 1 fail|abort
I've reproduced this bug easily from the submitted test. It should be fixed today for the rc1 release.
fixed in tree, tests in bings/CflowBinding*.java issue was with cflow capturing state that was not actually exposed to any advice