aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/features151/ataround/BugCase1.java29
-rw-r--r--tests/features151/ataround/BugCase2.java28
-rw-r--r--tests/features151/ataround/MultipleArgs.java45
3 files changed, 102 insertions, 0 deletions
diff --git a/tests/features151/ataround/BugCase1.java b/tests/features151/ataround/BugCase1.java
new file mode 100644
index 000000000..4f1c01a34
--- /dev/null
+++ b/tests/features151/ataround/BugCase1.java
@@ -0,0 +1,29 @@
+import org.aspectj.lang.*;
+import org.aspectj.lang.annotation.*;
+
+@Aspect
+public class BugCase1 {
+
+ @Pointcut("call(* setAge(..)) && args(i)")
+ void setAge(int i) {}
+
+ @Around("setAge(i)")
+ public Object twiceAsOld(ProceedingJoinPoint thisJoinPoint, int i) {
+ System.err.println("advice running");
+ return thisJoinPoint.proceed(new Object[]{i*2});
+ }
+
+}
+
+
+public class Foo {
+ int a;
+ public void setAge(int i) {
+ System.err.println("Setting age to "+i);
+ a=i;
+ }
+
+ public static void main(String[]argv) {
+ new Foo().setAge(5);
+ }
+}
diff --git a/tests/features151/ataround/BugCase2.java b/tests/features151/ataround/BugCase2.java
new file mode 100644
index 000000000..f99833e06
--- /dev/null
+++ b/tests/features151/ataround/BugCase2.java
@@ -0,0 +1,28 @@
+import org.aspectj.lang.*;
+import org.aspectj.lang.annotation.*;
+
+@Aspect
+public class ProceedAspect {
+
+ @Pointcut("execution(* setAge(..)) && args(i)")
+ void setAge(int i) {}
+
+ @Around("setAge(i)")
+ public Object twiceAsOld(ProceedingJoinPoint thisJoinPoint, int i) {
+ System.err.println("advice running");
+ return thisJoinPoint.proceed(new Object[]{i*2});
+ }
+}
+
+
+public class Foo {
+ int a;
+ public void setAge(int i) {
+ System.err.println("Setting age to "+i);
+ a=i;
+ }
+
+ public static void main(String[]argv) {
+ new Foo().setAge(5);
+ }
+}
diff --git a/tests/features151/ataround/MultipleArgs.java b/tests/features151/ataround/MultipleArgs.java
new file mode 100644
index 000000000..b9c5b8f6e
--- /dev/null
+++ b/tests/features151/ataround/MultipleArgs.java
@@ -0,0 +1,45 @@
+
+import org.aspectj.lang.annotation.*;
+
+@Aspect
+public class X {
+
+
+ @Before("call(* callone(..)) && !within(X) && args(a,b,c)")
+ public void b1(ProceedingJoinPoint pjp,int a,String b,List c) {
+ System.err.println("advice running");
+ pjp.proceed(new Object[]{a,b,c});
+ }
+
+ @Before("call(* calltwo(..)) && !within(X) && args(a,b,c)")
+ public void b1(ProceedingJoinPoint pjp,String b,List c,int a) {
+ System.err.println("advice running");
+ pjp.proceed(new Object[]{a,b,c});
+ }
+
+ @Before("call(* callone(..)) && !within(X) && args(a,b,c) && this(o)")
+ public void b1(ProceedingJoinPoint pjp,int a,String b,List c,Object o) {
+ System.err.println("advice running");
+ pjp.proceed(new Object[]{o,a,b,c});
+ }
+
+ public static void main(String []argv) {
+ new Test().doit();
+ }
+}
+
+
+class Test {
+ public void doit() {
+ List l = new ArrayList();
+ callone(5,"hello",l);
+ calltwo(5,"hello",l);
+ callthree(5,"hello",l);
+ callfour(5,"hello",l);
+ }
+
+ public void callone(int i,String s, List l) {}
+ public void calltwo(int i,String s, List l) {}
+ public void callthree(int i,String s, List l) {}
+ public void callfour(int i,String s, List l) {}
+}