diff options
-rw-r--r-- | org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip | bin | 3813361 -> 3832874 bytes | |||
-rw-r--r-- | org.eclipse.jdt.core/jdtcore-for-aspectj.jar | bin | 4279578 -> 4280016 bytes | |||
-rw-r--r-- | tests/bugs/privilegedAccess/a/ITD.aj | 6 | ||||
-rw-r--r-- | tests/bugs/privilegedAccess/b/B.aj | 13 | ||||
-rw-r--r-- | tests/bugs/privilegedAccess/b/B_notPrivileged.aj | 13 | ||||
-rw-r--r-- | tests/bugs/privilegedNPE/B.aj | 11 | ||||
-rw-r--r-- | tests/bugs/privilegedNPE/ITD.aj | 5 | ||||
-rw-r--r-- | tests/bugs/privilegedNPE/a/ITD.aj | 6 | ||||
-rw-r--r-- | tests/bugs/privilegedNPE/b/B.aj | 13 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java | 16 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml | 24 |
11 files changed, 107 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip b/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip Binary files differindex 9662dce55..3e7018819 100644 --- a/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip +++ b/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip diff --git a/org.eclipse.jdt.core/jdtcore-for-aspectj.jar b/org.eclipse.jdt.core/jdtcore-for-aspectj.jar Binary files differindex fb205d9a9..004291532 100644 --- a/org.eclipse.jdt.core/jdtcore-for-aspectj.jar +++ b/org.eclipse.jdt.core/jdtcore-for-aspectj.jar diff --git a/tests/bugs/privilegedAccess/a/ITD.aj b/tests/bugs/privilegedAccess/a/ITD.aj new file mode 100644 index 000000000..47009cd8c --- /dev/null +++ b/tests/bugs/privilegedAccess/a/ITD.aj @@ -0,0 +1,6 @@ +package a;
+
+public class ITD {
+ private void returnNothing(Object a) {
+ }
+}
\ No newline at end of file diff --git a/tests/bugs/privilegedAccess/b/B.aj b/tests/bugs/privilegedAccess/b/B.aj new file mode 100644 index 000000000..46f2b1a68 --- /dev/null +++ b/tests/bugs/privilegedAccess/b/B.aj @@ -0,0 +1,13 @@ +package b;
+
+import a.*;
+
+privileged aspect B {
+ public void ITD.newFun() {
+ returnNothing("a");
+ }
+
+ public static void main(String [] argv) {
+ new ITD().newFun();
+ }
+}
diff --git a/tests/bugs/privilegedAccess/b/B_notPrivileged.aj b/tests/bugs/privilegedAccess/b/B_notPrivileged.aj new file mode 100644 index 000000000..9ba5e9142 --- /dev/null +++ b/tests/bugs/privilegedAccess/b/B_notPrivileged.aj @@ -0,0 +1,13 @@ +package b;
+
+import a.*;
+
+aspect B {
+ public void ITD.newFun() {
+ returnNothing("a");
+ }
+
+ public static void main(String [] argv) {
+ new ITD().newFun();
+ }
+}
diff --git a/tests/bugs/privilegedNPE/B.aj b/tests/bugs/privilegedNPE/B.aj new file mode 100644 index 000000000..ae872061d --- /dev/null +++ b/tests/bugs/privilegedNPE/B.aj @@ -0,0 +1,11 @@ +
+
+privileged aspect B {
+ void blah(ITD x) { x.returnNothing("y"); }
+
+ public static void main(String[]argv) {
+ ITD a = new ITD();
+ a.returnNothing("a");
+ System.err.println("Call returned OK!");
+ }
+}
diff --git a/tests/bugs/privilegedNPE/ITD.aj b/tests/bugs/privilegedNPE/ITD.aj new file mode 100644 index 000000000..bf2333d10 --- /dev/null +++ b/tests/bugs/privilegedNPE/ITD.aj @@ -0,0 +1,5 @@ +
+public class ITD {
+ private void returnNothing(Object a) {
+ }
+}
diff --git a/tests/bugs/privilegedNPE/a/ITD.aj b/tests/bugs/privilegedNPE/a/ITD.aj new file mode 100644 index 000000000..78cd23d4e --- /dev/null +++ b/tests/bugs/privilegedNPE/a/ITD.aj @@ -0,0 +1,6 @@ +package a;
+
+public class ITD {
+ private void returnNothing(Object a) {
+ }
+}
diff --git a/tests/bugs/privilegedNPE/b/B.aj b/tests/bugs/privilegedNPE/b/B.aj new file mode 100644 index 000000000..9d8796a67 --- /dev/null +++ b/tests/bugs/privilegedNPE/b/B.aj @@ -0,0 +1,13 @@ +package b;
+
+import a.*;
+
+privileged aspect B {
+ void blah(ITD x) { x.returnNothing("y"); }
+
+ public static void main(String[]argv) {
+ ITD a = new ITD();
+ a.returnNothing("a");
+ System.err.println("Call returned OK!");
+ }
+}
diff --git a/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java b/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java index 1d7964940..391d5f89f 100644 --- a/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java @@ -210,5 +210,21 @@ public class Ajc121Tests extends org.aspectj.testing.XMLBasedAjcTestCase { s.equals(":before:around")); } + public void test039_privilegedAspectAccessingPrivateMethods_pr67579() { + runTest("NPE on privileged aspect error"); + } + + public void test040_privilegedAspectAccessingPrivateMethods_pr67579_2() { + runTest("NPE on privileged aspect error (2)"); + } + + public void test041_ITDaccessingPrivateMethod_pr67578() { + runTest("Privileged Aspect Access Problem Across Packages"); + } + + public void test042_ITDaccessingPrivateMethod_pr67578_2() { + runTest("Privileged Aspect Access Problem Across Packages (2)"); + } + } diff --git a/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml b/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml index 1ebf21c7a..45ba9dcf8 100644 --- a/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml +++ b/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml @@ -305,3 +305,27 @@ <run class="def.PrivateCall_Instance_Package2"/> </ajc-test> + <ajc-test dir="bugs/privilegedNPE" pr="67579" + title="NPE on privileged aspect error"> + <compile files="a\ITD.aj,b\B.aj"/> + <run class="b.B"/> + </ajc-test> + + <ajc-test dir="bugs/privilegedNPE" pr="67579" + title="NPE on privileged aspect error (2)"> + <compile files="b\B.aj,a\ITD.aj"/> + <run class="b.B"/> + </ajc-test> + + <ajc-test dir="bugs/privilegedAccess" pr="67578" + title="Privileged Aspect Access Problem Across Packages"> + <compile files="b\B.aj,a\ITD.aj"/> + <run class="b.B"/> + </ajc-test> + + <ajc-test dir="bugs/privilegedAccess" pr="67578" + title="Privileged Aspect Access Problem Across Packages (2)"> + <compile files="b\B_notPrivileged.aj,a\ITD.aj"> + <message kind="error" line="7" text="The method returnNothing(Object) from the type ITD is not visible"/> + </compile> + </ajc-test> |