--- /dev/null
+import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.*;
+
+
+abstract aspect Super {
+ void foo(String s) {}
+}
+
+@Aspect
+public class A extends Super {
+
+ @Around("execution(* m(..))")
+ public void invoke(ProceedingJoinPoint pjp) {
+ super.foo("hello");
+ }
+
+
+ public static void main(String []argv) {
+ new A().m();
+ }
+
+ public void m() {}
+}
+
--- /dev/null
+import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.*;
+
+
+abstract aspect Super {
+ void foo(String s,int i) {}
+}
+
+public aspect ACode extends Super {
+
+ void around(): execution(* m(..)) {
+ super.foo("hello",7);
+ }
+
+ public static void main(String []argv) {
+ ACode.m();
+ }
+
+ public static void m() {}
+}
+
--- /dev/null
+import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.*;
+
+// Now the joinpoint is in a different type, does the super call from advice still work OK?
+
+
+abstract aspect Super {
+ void foo(String s) {}
+}
+
+@Aspect
+public class B extends Super {
+
+ @Around("execution(* m(..))")
+ public void invoke(ProceedingJoinPoint pjp) {
+ super.foo("hello");
+ }
+
+ public static void main(String []argv) {
+ new C().m();
+ }
+}
+
+class C {
+
+ public void m() {}
+}
+
--- /dev/null
+import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.*;
+
+
+abstract aspect Super {
+ void foo(String s) {}
+}
+
+public aspect BCode extends Super {
+
+ void around(): execution(* m(..)) {
+ super.foo("hello");
+ }
+
+ public static void main(String []argv) {
+ new C().m();
+ }
+}
+
+class C {
+
+ public void m() {}
+}
+
// runTest("itd anonymous inner class in wrong package");
// }
+ public void testExtendingASI_pr252722() {
+ runTest("extending AbstractSecurityInterceptor");
+ }
+
+ public void testExtendingASI_pr252722_2() {
+ runTest("extending AbstractSecurityInterceptor - 2");
+ }
+
+ public void testExtendingASI_pr252722_3() {
+ runTest("extending AbstractSecurityInterceptor - 3");
+ }
+
+ public void testExtendingASI_pr252722_4() {
+ runTest("extending AbstractSecurityInterceptor - 4");
+ }
+
public void testGetNode_pr258653() {
runTest("getNode");
}
<ajc-test dir="bugs163/pr258653" title="getNode">
<compile files="staticinit.java" options="-1.5 -emacssym"/>
</ajc-test>
+
+ <ajc-test dir="bugs163/pr252722" title="extending AbstractSecurityInterceptor">
+ <compile files="A.java" options="-1.5"/>
+ <run class="A"/>
+ </ajc-test>
+
+ <ajc-test dir="bugs163/pr252722" title="extending AbstractSecurityInterceptor - 2">
+ <compile files="ACode.java" options="-1.5"/>
+ <run class="ACode"/>
+ </ajc-test>
+
+ <ajc-test dir="bugs163/pr252722" title="extending AbstractSecurityInterceptor - 3">
+ <compile files="B.java" options="-1.5"/>
+ <run class="B"/>
+ </ajc-test>
+
+ <ajc-test dir="bugs163/pr252722" title="extending AbstractSecurityInterceptor - 4">
+ <compile files="BCode.java" options="-1.5"/>
+ <run class="BCode"/>
+ </ajc-test>
<ajc-test dir="bugs163/pr154427" title="getMethod returning null">
<compile files="AuthorizationImpl.java Authorization.java AuthorizationAdmin.java CallAndMethodSignatureAspect.java CallTest.java" options=""/>