aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraclement <aclement>2008-12-05 21:57:45 +0000
committeraclement <aclement>2008-12-05 21:57:45 +0000
commit1cf507ec70fc29fac77f8fe1779e187a1c550a7c (patch)
tree6b43a4fb5c88c46a201c69724774d87008bbd004
parent3756d42e4446d917be52d39e09a29a32a858734b (diff)
downloadaspectj-1cf507ec70fc29fac77f8fe1779e187a1c550a7c.tar.gz
aspectj-1cf507ec70fc29fac77f8fe1779e187a1c550a7c.zip
219419: test and fix
-rw-r--r--tests/bugs163/pr219419/Code.java26
-rw-r--r--tests/bugs163/pr219419/Code2.java26
-rw-r--r--tests/bugs163/pr219419/Code3.java39
-rw-r--r--tests/bugs163/pr219419/Code4.java36
-rw-r--r--tests/bugs163/pr219419/Code5.java27
5 files changed, 154 insertions, 0 deletions
diff --git a/tests/bugs163/pr219419/Code.java b/tests/bugs163/pr219419/Code.java
new file mode 100644
index 000000000..c0c523ff7
--- /dev/null
+++ b/tests/bugs163/pr219419/Code.java
@@ -0,0 +1,26 @@
+import org.aspectj.lang.annotation.*;
+
+public class Code {
+ public void emitGooeyMess(String argument) throws Exception {
+ throw new RuntimeException("Gooey Mess");
+ }
+
+ public static void main(String []argv) {
+ try {
+ new Code().emitGooeyMess("ewwww");
+ } catch (Exception e) {}
+ }
+}
+
+@Aspect
+class TestAspect {
+ @Pointcut("execution(* Code.*(..)) && args(s)")
+ public void squidStringMethods(String s) {}
+
+ @AfterThrowing(pointcut="squidStringMethods(s)", throwing="e")
+ public void catchGooeyMess(Exception e, String s) {
+ //public void catchGooeyMess(String s, Exception e) {
+ System.out.println("Catching mess. Argument was " + s);
+ }
+}
+
diff --git a/tests/bugs163/pr219419/Code2.java b/tests/bugs163/pr219419/Code2.java
new file mode 100644
index 000000000..bda50ae12
--- /dev/null
+++ b/tests/bugs163/pr219419/Code2.java
@@ -0,0 +1,26 @@
+import org.aspectj.lang.annotation.*;
+
+public class Code2 {
+ public void emitGooeyMess(String argument) throws Exception {
+ throw new RuntimeException("Gooey Mess");
+ }
+
+ public static void main(String []argv) {
+ try {
+ new Code2().emitGooeyMess("ewwww");
+ } catch (Exception e) {}
+ }
+}
+
+@Aspect
+class TestAspect {
+ @Pointcut("execution(* Code2.*(..)) && args(s)")
+ public void squidStringMethods(String s) {}
+
+ @AfterThrowing(pointcut="squidStringMethods(s)", throwing="e")
+ public void catchGooeyMess(String s, Exception e) {
+ //public void catchGooeyMess(String s, Exception e) {
+ System.out.println("Catching mess. Argument was " + s);
+ }
+}
+
diff --git a/tests/bugs163/pr219419/Code3.java b/tests/bugs163/pr219419/Code3.java
new file mode 100644
index 000000000..9180269d8
--- /dev/null
+++ b/tests/bugs163/pr219419/Code3.java
@@ -0,0 +1,39 @@
+import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+
+public class Code3 {
+
+ public Object createBean(String name) {
+ return 37;
+ }
+
+ public static void main(String[] args) {
+ Code3 factory = new Code3();
+ System.out.println("Code3.main returned from call to createBean "+factory.createBean("s"));
+ }
+}
+
+@Aspect
+class AfterReturningTestAspect {
+
+ @AfterReturning(pointcut = "call(Object createBean(String)) && args(beanName)", returning = "bean")
+ // this does not run
+ public void afterReturningCreateBean(/*JoinPoint joinPoint,*/ String beanName, Object bean) throws Throwable {
+ // this matches:
+ //public void afterReturningCreateBean(JoinPoint joinPoint, Object bean, String beanName) throws Throwable {
+ System.out.println("afterReturningCreateBean advice input='" + beanName + "' ret=" + bean);
+ }
+
+ /*
+ @AfterReturning(pointcut = "call(Object aspects.SimpleAfterReturningTest.createBean(String)) " +
+ "&& args(beanName)", returning = "bean")
+ public void afterReturningCreateBean(JoinPoint joinPoint, Object bean,
+ String beanName) throws Throwable {
+ System.out.println("afterReturningCreateBean(JoinPoint joinPoint,
+ Object bean, String beanName) for '" + beanName + "'=" + bean);
+ }
+ */
+}
+
diff --git a/tests/bugs163/pr219419/Code4.java b/tests/bugs163/pr219419/Code4.java
new file mode 100644
index 000000000..be0f66b69
--- /dev/null
+++ b/tests/bugs163/pr219419/Code4.java
@@ -0,0 +1,36 @@
+import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+
+public class Code4 {
+
+ public Object createBean(String name) {
+ return 37;
+ }
+
+ public static void main(String[] args) {
+ Code4 factory = new Code4();
+ System.out.println("Code4.main returned from call to createBean "+factory.createBean("s"));
+ }
+}
+
+@Aspect
+class AfterReturningTestAspect {
+
+ @AfterReturning(pointcut = "call(Object createBean(String)) && args(beanName)", returning = "bean")
+ public void afterReturningCreateBean(Object bean, String beanName) throws Throwable {
+ System.out.println("afterReturningCreateBean advice input='" + beanName + "' ret=" + bean);
+ }
+
+ /*
+ @AfterReturning(pointcut = "call(Object aspects.SimpleAfterReturningTest.createBean(String)) " +
+ "&& args(beanName)", returning = "bean")
+ public void afterReturningCreateBean(JoinPoint joinPoint, Object bean,
+ String beanName) throws Throwable {
+ System.out.println("afterReturningCreateBean(JoinPoint joinPoint,
+ Object bean, String beanName) for '" + beanName + "'=" + bean);
+ }
+ */
+}
+
diff --git a/tests/bugs163/pr219419/Code5.java b/tests/bugs163/pr219419/Code5.java
new file mode 100644
index 000000000..aa5a74181
--- /dev/null
+++ b/tests/bugs163/pr219419/Code5.java
@@ -0,0 +1,27 @@
+import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+
+public class Code5 {
+
+ public Object createBean(String name) {
+ return 37;
+ }
+
+ public static void main(String[] args) {
+ Code5 factory = new Code5();
+ System.out.println("Code5.main returned from call to createBean "+factory.createBean("s"));
+ }
+}
+
+@Aspect
+class AfterReturningTestAspect {
+
+ @AfterReturning(pointcut = "call(Object createBean(String)) && args(beanName)", returning = "bean")
+ public void afterReturningCreateBean(JoinPoint joinPoint, String beanName, Object bean) throws Throwable {
+ System.out.println("afterReturningCreateBean advice input='" + beanName + "' ret=" + bean);
+ }
+
+}
+