files="Test_AroundVarBug.java,AroundVarBug.java"/>
<run class="Test_AroundVarBug"/>
</ajc-test>
+
+ <ajc-test
+ dir="bugs"
+ pr="75129"
+ title="NPE on thisJoinPoint mistake">
+ <compile files="TjpMistake.java">
+ <message kind="error" line="22"/>
+ </compile>
+ </ajc-test>
</suite>
--- /dev/null
+/** @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); }
+}