--- /dev/null
+import org.aspectj.lang.reflect.MethodSignature;
+
+class A<X> { }
+
+class Base {
+ public A<String> foo() { return null; }
+}
+
+public aspect Demo {
+ public A<String> Base.bar() { return null; }
+ public Base Base.baz() { return null; }
+
+ before(): execution(* Base.*(..)) {
+ Class<?> cs = ((MethodSignature)thisJoinPointStaticPart.getSignature()).getReturnType();
+ System.out.format("%s (%b)%n",
+ cs,
+ ClassNotFoundException.class == cs);
+ }
+
+ public static void main(String[] arg) {
+ new Base().foo();
+ new Base().bar();
+ new Base().baz();
+ }
+}
+
public class Ajc163Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
+ public void testItdCCE_pr250091() {
+ runTest("itd cce");
+ }
+
+ // class A from java.net.URLClassLoader@1e4853f extends class java.lang.Object (false)
+ // class java.lang.ClassNotFoundException from null extends class java.lang.Exception (true)
+ // class Base from java.net.URLClassLoader@1e4853f extends class java.lang.Object (false)
+
public void testBreakingRecovery_pr226163() {
runTest("breaking recovery");
}
<suite>
+ <ajc-test dir="bugs163/pr250091" title="itd cce">
+ <compile files="Demo.java" options="-1.5"/>
+ <run class="Demo">
+ <stdout>
+ <line text="class A (false)"/>
+ <line text="class A (false)"/>
+ <line text="class Base (false)"/>
+ </stdout>
+ </run>
+ </ajc-test>
+
<ajc-test dir="bugs163/pr226163" title="breaking recovery">
<compile files="Code.java" options="-1.5">
<message kind="error" line="4" text="Syntax error"/>