Bug 34858 - Weaver crash
Summary: Weaver crash
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 2000
: P1 critical (vote)
Target Milestone: ---   Edit
Assignee: Jim Hugunin CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-03-12 14:50 EST by Ron Bodkin CLA
Modified: 2003-03-12 18:07 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ron Bodkin CLA 2003-03-12 14:50:32 EST
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
Comment 1 Jim Hugunin CLA 2003-03-12 14:59:49 EST
I've reproduced this bug easily from the submitted test.  It should be fixed 
today for the rc1 release.
Comment 2 Jim Hugunin CLA 2003-03-12 18:07:52 EST
fixed in tree, tests in bings/CflowBinding*.java

issue was with cflow capturing state that was not actually exposed to any 
advice