aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authoraclement <aclement>2008-06-11 18:24:26 +0000
committeraclement <aclement>2008-06-11 18:24:26 +0000
commita0cf51dde7d399fbf7774df4709c19b8a7e95b4a (patch)
tree0d46c0fae3b41c462b7568d5372dbff3b14fb6cb /tests
parent3b13e9b46e82001b285bbc61634ec1c446e84343 (diff)
downloadaspectj-a0cf51dde7d399fbf7774df4709c19b8a7e95b4a.tar.gz
aspectj-a0cf51dde7d399fbf7774df4709c19b8a7e95b4a.zip
197719: test and fix: advising protected method calls from inner classes
Diffstat (limited to 'tests')
-rw-r--r--tests/bugs161/pr197719/A.java5
-rw-r--r--tests/bugs161/pr197719/B.java19
-rw-r--r--tests/bugs161/pr197719/X.java3
-rw-r--r--tests/src/org/aspectj/systemtest/ajc161/Ajc161Tests.java1
-rw-r--r--tests/src/org/aspectj/systemtest/ajc161/ajc161.xml11
5 files changed, 39 insertions, 0 deletions
diff --git a/tests/bugs161/pr197719/A.java b/tests/bugs161/pr197719/A.java
new file mode 100644
index 000000000..bfb5dd9d1
--- /dev/null
+++ b/tests/bugs161/pr197719/A.java
@@ -0,0 +1,5 @@
+package a;
+
+public class A {
+ protected void m() { System.out.println("m() running");}
+}
diff --git a/tests/bugs161/pr197719/B.java b/tests/bugs161/pr197719/B.java
new file mode 100644
index 000000000..cb5e2ffcf
--- /dev/null
+++ b/tests/bugs161/pr197719/B.java
@@ -0,0 +1,19 @@
+package b;
+
+public class B extends a.A {
+ protected class Inner {
+ public void foo() {
+ System.out.println("calling m()");
+ m();
+ }
+ }
+
+ public static void main(String []argv) {
+ B b = new B();
+ b.run();
+ }
+
+ public void run() {
+ new Inner().foo();
+ }
+}
diff --git a/tests/bugs161/pr197719/X.java b/tests/bugs161/pr197719/X.java
new file mode 100644
index 000000000..2dce7a180
--- /dev/null
+++ b/tests/bugs161/pr197719/X.java
@@ -0,0 +1,3 @@
+public aspect X {
+ void around(): call(* m()) { System.out.println("advice running"); proceed();}
+}
diff --git a/tests/src/org/aspectj/systemtest/ajc161/Ajc161Tests.java b/tests/src/org/aspectj/systemtest/ajc161/Ajc161Tests.java
index fb2b75f77..ed8cd9f32 100644
--- a/tests/src/org/aspectj/systemtest/ajc161/Ajc161Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc161/Ajc161Tests.java
@@ -23,6 +23,7 @@ import org.aspectj.testing.XMLBasedAjcTestCase;
public class Ajc161Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
// AspectJ1.6.1
+ public void testProtectedMethodsAroundAdvice_pr197719() { runTest("protected methods and around advice - again");}
public void testProtectedMethodsAroundAdvice_pr230075() { runTest("protected methods and around advice");}
public void testFinalStringsAnnotationPointcut_pr174385() { runTest("static strings in annotation pointcuts");}
public void testComplexBoundsGenericAspect_pr199130_1() { runTest("complex bounds on generic aspect - 1");}
diff --git a/tests/src/org/aspectj/systemtest/ajc161/ajc161.xml b/tests/src/org/aspectj/systemtest/ajc161/ajc161.xml
index c15f0a4f4..0265aa7d7 100644
--- a/tests/src/org/aspectj/systemtest/ajc161/ajc161.xml
+++ b/tests/src/org/aspectj/systemtest/ajc161/ajc161.xml
@@ -3,6 +3,17 @@
<!-- AspectJ v1.6.1 Tests -->
<suite>
+ <ajc-test dir="bugs161/pr197719" title="protected methods and around advice - again">
+ <compile files="A.java B.java X.java" options="-1.5"/>
+ <run class="b.B">
+ <stdout>
+ <line text="calling m()"/>
+ <line text="advice running"/>
+ <line text="m() running"/>
+ </stdout>
+ </run>
+ </ajc-test>
+
<ajc-test dir="bugs161/pr230075" title="protected methods and around advice">
<compile files="A.java B.java C.java X.java" options="-1.5"/>
<run class="a.C"/>