From: aclement Date: Mon, 15 Dec 2008 21:28:34 +0000 (+0000) Subject: 252722: test and fix: generated super dispatch methods X-Git-Tag: V1_6_3rc1~3 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=f6c0e441ce6ab3d8bb9724d3595d95cef60e786e;p=aspectj.git 252722: test and fix: generated super dispatch methods --- 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 @@ + + + + + + + + + + + + + + + + + + + +