Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-dev] VerifyError fixed for 1.1.1

Macneil submitted this as

https://bugs.eclipse.org/bugs/show_bug.cgi?id=43194

Because it is a VerifyError it was tagged as a high-priority bug.

Jim and I pair fixed this in the tree.  The bug was caused by
ReferencePointcut.concretize mutating state rather than behaving
properly functionally.

After removing the layers of after advice and cflow entry/exits, the
minimal test case is below.  The multiple levels of indirection, as
well as the concretization with a typename in the first advice followed
by concretization with a parameter name in the second are all required
to cause the bug.

class C {    
    public void m1() {}
    public void m2() {}
}

aspect A {    
    pointcut exec1(C c): this(c) && execution(void m1());
    pointcut execs(C c): exec1(c); 
    
    before (): execs(*) {}
    before (C c):  execs(c) {}
}

-erik



Back to the top