]> source.dussan.org Git - aspectj.git/commitdiff
197719: test and fix: advising protected method calls from inner classes
authoraclement <aclement>
Wed, 11 Jun 2008 18:24:26 +0000 (18:24 +0000)
committeraclement <aclement>
Wed, 11 Jun 2008 18:24:26 +0000 (18:24 +0000)
tests/bugs161/pr197719/A.java [new file with mode: 0644]
tests/bugs161/pr197719/B.java [new file with mode: 0644]
tests/bugs161/pr197719/X.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc161/Ajc161Tests.java
tests/src/org/aspectj/systemtest/ajc161/ajc161.xml

diff --git a/tests/bugs161/pr197719/A.java b/tests/bugs161/pr197719/A.java
new file mode 100644 (file)
index 0000000..bfb5dd9
--- /dev/null
@@ -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 (file)
index 0000000..cb5e2ff
--- /dev/null
@@ -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 (file)
index 0000000..2dce7a1
--- /dev/null
@@ -0,0 +1,3 @@
+public aspect X {
+  void around(): call(* m()) { System.out.println("advice running"); proceed();}
+}
index fb2b75f77d7793e3f3237d56695ef0a987c624e8..ed8cd9f32093d060a18b4917e58b99280b1f2674 100644 (file)
@@ -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");}
index c15f0a4f4c282e0ab7629796741e6845172f686c..0265aa7d7c1a1edf354e645a48c6ac8b6922b83c 100644 (file)
@@ -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"/>