aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraclement <aclement>2008-12-08 19:35:40 +0000
committeraclement <aclement>2008-12-08 19:35:40 +0000
commit2e2be8e6396445755df423a96fc2decdae7b8b40 (patch)
tree448f1671fb2ec1241ecd37f6771412081899c039
parent18f949e82fe7306e556801e1d2af4ded472b856a (diff)
downloadaspectj-2e2be8e6396445755df423a96fc2decdae7b8b40.tar.gz
aspectj-2e2be8e6396445755df423a96fc2decdae7b8b40.zip
257833: test and fix: anno atArgs and null
-rw-r--r--tests/bugs163/pr257833/NotNull.java3
-rw-r--r--tests/bugs163/pr257833/NotNullAspect.java15
-rw-r--r--tests/bugs163/pr257833/NotNullTest.java21
-rw-r--r--tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java4
-rw-r--r--tests/src/org/aspectj/systemtest/ajc163/ajc163.xml7
5 files changed, 50 insertions, 0 deletions
diff --git a/tests/bugs163/pr257833/NotNull.java b/tests/bugs163/pr257833/NotNull.java
new file mode 100644
index 000000000..47950d02c
--- /dev/null
+++ b/tests/bugs163/pr257833/NotNull.java
@@ -0,0 +1,3 @@
+package patterntesting.check.runtime;
+
+public @interface NotNull { }
diff --git a/tests/bugs163/pr257833/NotNullAspect.java b/tests/bugs163/pr257833/NotNullAspect.java
new file mode 100644
index 000000000..f5e8654d7
--- /dev/null
+++ b/tests/bugs163/pr257833/NotNullAspect.java
@@ -0,0 +1,15 @@
+package patterntesting.check.runtime;
+
+public aspect NotNullAspect {
+
+ pointcut ctorWithNotNullArg() :
+ execution(*..*.new(*)) && @args(NotNull);
+
+ before() : ctorWithNotNullArg() {
+ Object[] args = thisJoinPoint.getArgs();
+ if (args[0] == null) {
+ throw new AssertionError("@NotNull constraint violated");
+ }
+ }
+
+}
diff --git a/tests/bugs163/pr257833/NotNullTest.java b/tests/bugs163/pr257833/NotNullTest.java
new file mode 100644
index 000000000..f3e64c73b
--- /dev/null
+++ b/tests/bugs163/pr257833/NotNullTest.java
@@ -0,0 +1,21 @@
+package patterntesting.check.runtime;
+
+
+public class NotNullTest {
+
+ private String s2;
+ private static final String nullString = null;
+
+ public NotNullTest() {
+ }
+
+ public NotNullTest(@NotNull String s) {
+ s2 = s;
+ }
+
+ public static void main(String []argv) {
+ new NotNullTest("something");
+ new NotNullTest(nullString);
+ }
+
+}
diff --git a/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java b/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java
index a403dffa3..ec6d91012 100644
--- a/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc163/Ajc163Tests.java
@@ -28,6 +28,10 @@ import org.aspectj.testing.XMLBasedAjcTestCase;
public class Ajc163Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
+ public void testNonNullAtArgs_pr257833() {
+ runTest("param annos and at args");
+ }
+
// public void testAtAspectJDecp_pr164016() {
// runTest("ataspectj decp");
// }
diff --git a/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml b/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml
index eb1034a60..9c65c6f95 100644
--- a/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml
+++ b/tests/src/org/aspectj/systemtest/ajc163/ajc163.xml
@@ -191,6 +191,13 @@
<message kind="warning" line="4" text="has not been applied"/>
</compile>
</ajc-test>
+
+ <ajc-test dir="bugs163/pr257833" title="param annos and at args">
+ <compile files="NotNull.java NotNullAspect.java NotNullTest.java" options="-1.5 -showWeaveInfo">
+ <message kind="weave" text="Join point 'constructor-execution(void patterntesting.check.runtime.NotNullTest.&lt;init&gt;(java.lang.String))' in Type"/>
+ </compile>
+ <run class="patterntesting.check.runtime.NotNullTest"/>
+ </ajc-test>
<ajc-test dir="bugs163/pr253109" title="generic pointcuts - 2">
<compile files="CodeTwo.java" options="-1.5"/>