1234567891011121314151617181920212223242526272829 |
- /** @testcase PR#75129 NPE on thisJoinPoint mistake */
- public class TjpMistake {
- public static void main(String[] a) {
- new C().go();
- new D().go();
- new E().go();
- }
- }
- interface I { void go();}
- class C {}
- class D {
- public void go() { System.out.println("D.go() in " + this); }
- }
- class E extends D {
- }
- aspect A {
- declare parents: (C || D) implements I;
- public void I.go() { System.out.println("I.go() in " + this); }
- before() : execution(* I.*(..)) {
- System.out.println(
- // mistake caused compiler crash rather than error
- thisJoinPoint.getSignature.toLongString() // CE 22
- // correct
- //thisJoinPointStaticPart.getSignature().toLongString()
- + " "
- + thisJoinPoint.getSignature().getDeclaringType()
- + " "
- + this); }
- }
|