aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraclement <aclement>2008-12-15 21:28:34 +0000
committeraclement <aclement>2008-12-15 21:28:34 +0000
commitf6c0e441ce6ab3d8bb9724d3595d95cef60e786e (patch)
tree10b9c80e98661bc4db8cdb92e8079a36e53b825c
parenta2041f02e2d022438f125681339706b97af8e2e7 (diff)
downloadaspectj-f6c0e441ce6ab3d8bb9724d3595d95cef60e786e.tar.gz
aspectj-f6c0e441ce6ab3d8bb9724d3595d95cef60e786e.zip
252722: test and fix: generated super dispatch methods
-rw-r--r--tests/bugs163/pr252722/A.java24
-rw-r--r--tests/bugs163/pr252722/ACode.java21
-rw-r--r--tests/bugs163/pr252722/B.java28
-rw-r--r--tests/bugs163/pr252722/BCode.java24
-rw-r--r--tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java16
-rw-r--r--tests/src/org/aspectj/systemtest/ajc163/ajc163.xml20
6 files changed, 133 insertions, 0 deletions
diff --git a/tests/bugs163/pr252722/A.java b/tests/bugs163/pr252722/A.java
new file mode 100644
index 000000000..35ae945d3
--- /dev/null
+++ b/tests/bugs163/pr252722/A.java
@@ -0,0 +1,24 @@
+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() {}
+}
+
diff --git a/tests/bugs163/pr252722/ACode.java b/tests/bugs163/pr252722/ACode.java
new file mode 100644
index 000000000..672a5b365
--- /dev/null
+++ b/tests/bugs163/pr252722/ACode.java
@@ -0,0 +1,21 @@
+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() {}
+}
+
diff --git a/tests/bugs163/pr252722/B.java b/tests/bugs163/pr252722/B.java
new file mode 100644
index 000000000..23b516fb5
--- /dev/null
+++ b/tests/bugs163/pr252722/B.java
@@ -0,0 +1,28 @@
+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() {}
+}
+
diff --git a/tests/bugs163/pr252722/BCode.java b/tests/bugs163/pr252722/BCode.java
new file mode 100644
index 000000000..1773ac0d9
--- /dev/null
+++ b/tests/bugs163/pr252722/BCode.java
@@ -0,0 +1,24 @@
+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() {}
+}
+
diff --git a/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java b/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java
index 0ad817a72..a6c3900f4 100644
--- a/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java
@@ -31,6 +31,22 @@ public class Ajc163Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
// 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");
}
diff --git a/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml b/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml
index 9a3ee182d..cf8c9cf61 100644
--- a/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml
+++ b/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml
@@ -5,6 +5,26 @@
<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=""/>