aboutsummaryrefslogtreecommitdiffstats
path: root/tests/bugs193/333274
diff options
context:
space:
mode:
authorAndy Clement <aclement@pivotal.io>2019-02-19 08:56:29 -0800
committerAndy Clement <aclement@pivotal.io>2019-02-19 08:56:29 -0800
commit90c187454f1bd6af5d7e591cefd36861fd4fb342 (patch)
tree704d0f9f4e32adfa222db8e2a0f2499260ce68f5 /tests/bugs193/333274
parent2f2ae93c68d45f929ce213e3175940aada4a3350 (diff)
downloadaspectj-90c187454f1bd6af5d7e591cefd36861fd4fb342.tar.gz
aspectj-90c187454f1bd6af5d7e591cefd36861fd4fb342.zip
Testcode for 333274
Diffstat (limited to 'tests/bugs193/333274')
-rw-r--r--tests/bugs193/333274/ma/Main.java31
-rw-r--r--tests/bugs193/333274/ma/Precedence.java12
-rw-r--r--tests/bugs193/333274/ma/aspect1/Annotation1.java15
-rw-r--r--tests/bugs193/333274/ma/aspect1/Aspect1.java36
-rw-r--r--tests/bugs193/333274/ma/aspect2/Annotation2.java14
-rw-r--r--tests/bugs193/333274/ma/aspect2/Aspect2.java26
-rw-r--r--tests/bugs193/333274/ma/aspect3/Annotation3.java13
-rw-r--r--tests/bugs193/333274/ma/aspect3/Aspect3.java30
-rw-r--r--tests/bugs193/333274/ma2/Annotation1.classbin0 -> 461 bytes
-rw-r--r--tests/bugs193/333274/ma2/Annotation1.java15
-rw-r--r--tests/bugs193/333274/ma2/Annotation2.classbin0 -> 287 bytes
-rw-r--r--tests/bugs193/333274/ma2/Annotation2.java12
-rw-r--r--tests/bugs193/333274/ma2/Annotation3.classbin0 -> 461 bytes
-rw-r--r--tests/bugs193/333274/ma2/Annotation3.java13
-rw-r--r--tests/bugs193/333274/ma2/Aspect1$InternalClass.classbin0 -> 346 bytes
-rw-r--r--tests/bugs193/333274/ma2/Aspect1.classbin0 -> 3709 bytes
-rw-r--r--tests/bugs193/333274/ma2/Aspect1.java34
-rw-r--r--tests/bugs193/333274/ma2/Aspect2.classbin0 -> 3611 bytes
-rw-r--r--tests/bugs193/333274/ma2/Aspect2.java27
-rw-r--r--tests/bugs193/333274/ma2/Aspect3$InnerClass2.classbin0 -> 340 bytes
-rw-r--r--tests/bugs193/333274/ma2/Aspect3.classbin0 -> 3785 bytes
-rw-r--r--tests/bugs193/333274/ma2/Aspect3.java32
-rw-r--r--tests/bugs193/333274/ma2/Main$Dummy.classbin0 -> 3803 bytes
-rw-r--r--tests/bugs193/333274/ma2/Main.classbin0 -> 552 bytes
-rw-r--r--tests/bugs193/333274/ma2/Main.java27
-rw-r--r--tests/bugs193/333274/ma2/Precedence.classbin0 -> 1354 bytes
-rw-r--r--tests/bugs193/333274/ma2/Precedence.java12
-rw-r--r--tests/bugs193/333274/ma2/aspect1/Annotation1.java15
-rw-r--r--tests/bugs193/333274/ma2/aspect1/Aspect1.java34
-rw-r--r--tests/bugs193/333274/ma2/aspect2/Annotation2.java14
-rw-r--r--tests/bugs193/333274/ma2/aspect2/Aspect2.java26
-rw-r--r--tests/bugs193/333274/ma2/aspect3/Annotation3.java13
-rw-r--r--tests/bugs193/333274/ma2/aspect3/Aspect3.java30
-rw-r--r--tests/bugs193/333274/ma2/ma2/Annotation1.classbin0 -> 461 bytes
-rw-r--r--tests/bugs193/333274/ma2/ma2/Annotation2.classbin0 -> 287 bytes
-rw-r--r--tests/bugs193/333274/ma2/ma2/Annotation3.classbin0 -> 461 bytes
-rw-r--r--tests/bugs193/333274/ma2/ma2/Aspect1$InternalClass.classbin0 -> 346 bytes
-rw-r--r--tests/bugs193/333274/ma2/ma2/Aspect1.classbin0 -> 3709 bytes
-rw-r--r--tests/bugs193/333274/ma2/ma2/Aspect2.classbin0 -> 3611 bytes
-rw-r--r--tests/bugs193/333274/ma2/ma2/Aspect3$InnerClass2.classbin0 -> 340 bytes
-rw-r--r--tests/bugs193/333274/ma2/ma2/Aspect3.classbin0 -> 3785 bytes
-rw-r--r--tests/bugs193/333274/ma2/ma2/Main$Dummy.classbin0 -> 3803 bytes
-rw-r--r--tests/bugs193/333274/ma2/ma2/Main.classbin0 -> 552 bytes
-rw-r--r--tests/bugs193/333274/ma2/ma2/Precedence.classbin0 -> 1354 bytes
44 files changed, 481 insertions, 0 deletions
diff --git a/tests/bugs193/333274/ma/Main.java b/tests/bugs193/333274/ma/Main.java
new file mode 100644
index 000000000..f86ba3c4e
--- /dev/null
+++ b/tests/bugs193/333274/ma/Main.java
@@ -0,0 +1,31 @@
+package ma;
+
+import ma.aspect1.Annotation1;
+import ma.aspect2.Annotation2;
+import ma.aspect3.Annotation3;
+
+public class Main {
+
+ public static class Dummy {
+
+ private int counter = 0;
+
+ @Annotation1
+ @Annotation2
+ @Annotation3
+ public int retryTranslateAndTimeLimited() {
+ System.out.println("Method call");
+ if (counter++ == 0) {
+ throw new IllegalStateException();
+ } else {
+ return 1;
+ }
+ }
+
+ }
+
+ public static void main(String[] args) {
+ new Dummy().retryTranslateAndTimeLimited();
+ }
+
+}
diff --git a/tests/bugs193/333274/ma/Precedence.java b/tests/bugs193/333274/ma/Precedence.java
new file mode 100644
index 000000000..3b60b46de
--- /dev/null
+++ b/tests/bugs193/333274/ma/Precedence.java
@@ -0,0 +1,12 @@
+package ma;
+
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.DeclarePrecedence;
+
+@Aspect
+@DeclarePrecedence("ma.aspect1.Aspect1, "
+ + "ma.aspect2.Aspect2, "
+ + "ma.aspect3.Aspect3")
+class Precedence {
+
+}
diff --git a/tests/bugs193/333274/ma/aspect1/Annotation1.java b/tests/bugs193/333274/ma/aspect1/Annotation1.java
new file mode 100644
index 000000000..7d6186f22
--- /dev/null
+++ b/tests/bugs193/333274/ma/aspect1/Annotation1.java
@@ -0,0 +1,15 @@
+package ma.aspect1;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+
+@Target( { ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.ANNOTATION_TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface Annotation1 {
+
+}
diff --git a/tests/bugs193/333274/ma/aspect1/Aspect1.java b/tests/bugs193/333274/ma/aspect1/Aspect1.java
new file mode 100644
index 000000000..8883be8b4
--- /dev/null
+++ b/tests/bugs193/333274/ma/aspect1/Aspect1.java
@@ -0,0 +1,36 @@
+package ma.aspect1;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+
+
+@Aspect
+public class Aspect1 {
+
+ @Around("(execution(@ma.aspect1.Annotation1 * *(..)) || execution(@ma.aspect1.Annotation1 *.new(..)))")
+ public Object inRetryAspect(ProceedingJoinPoint pjp) throws Throwable {
+
+ InternalClass ic = new InternalClass();
+
+ System.out.println(">In Aspect1");
+
+ try {
+ pjp.proceed();
+ } catch (Exception ignored) {
+
+ }
+
+ System.out.println("=In Aspect1");
+ try {
+ return pjp.proceed();
+ } finally {
+ System.out.println("<In Aspect1");
+ }
+
+ }
+
+ private static class InternalClass {
+ }
+
+}
diff --git a/tests/bugs193/333274/ma/aspect2/Annotation2.java b/tests/bugs193/333274/ma/aspect2/Annotation2.java
new file mode 100644
index 000000000..159551c5e
--- /dev/null
+++ b/tests/bugs193/333274/ma/aspect2/Annotation2.java
@@ -0,0 +1,14 @@
+package ma.aspect2;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target( { ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.ANNOTATION_TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface Annotation2 {
+
+}
diff --git a/tests/bugs193/333274/ma/aspect2/Aspect2.java b/tests/bugs193/333274/ma/aspect2/Aspect2.java
new file mode 100644
index 000000000..840065ed9
--- /dev/null
+++ b/tests/bugs193/333274/ma/aspect2/Aspect2.java
@@ -0,0 +1,26 @@
+package ma.aspect2;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+
+@Aspect
+public class Aspect2 {
+
+ @Around("(execution(@ma.aspect2.Annotation2 * *(..)) || execution(@ma.aspect2.Annotation2 *.new(..)))")
+ public Object inExceptionTranslatorAspect(ProceedingJoinPoint pjp) throws Throwable {
+
+ System.out.println(">In Aspect2");
+
+ try {
+ Object returnedObject = pjp.proceed();
+ System.out.println("<In Aspect2");
+ return returnedObject;
+ } catch (Throwable thrownThrowable) {
+ System.out.println("<In Aspect2");
+ throw thrownThrowable;
+ }
+
+ }
+
+}
diff --git a/tests/bugs193/333274/ma/aspect3/Annotation3.java b/tests/bugs193/333274/ma/aspect3/Annotation3.java
new file mode 100644
index 000000000..0bbae2af3
--- /dev/null
+++ b/tests/bugs193/333274/ma/aspect3/Annotation3.java
@@ -0,0 +1,13 @@
+package ma.aspect3;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target( { ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.ANNOTATION_TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface Annotation3 {
+}
diff --git a/tests/bugs193/333274/ma/aspect3/Aspect3.java b/tests/bugs193/333274/ma/aspect3/Aspect3.java
new file mode 100644
index 000000000..e5f3a0273
--- /dev/null
+++ b/tests/bugs193/333274/ma/aspect3/Aspect3.java
@@ -0,0 +1,30 @@
+package ma.aspect3;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+
+@Aspect
+public class Aspect3 {
+
+ @Around("(execution(@ma.aspect3.Annotation3 * *(..)) || execution(@ma.aspect3.Annotation3 *.new(..)))")
+ public Object inTimeLimiterAspect(ProceedingJoinPoint pjp) throws Throwable {
+
+ InnerClass2 c = new InnerClass2();
+
+ System.out.println(">In Aspect3");
+ try {
+ Object returnedObject = pjp.proceed();
+ System.out.println("<In Aspect3");
+ return returnedObject;
+ } catch (Exception e) {
+ System.out.println("<In Aspect3");
+ throw e;
+ }
+
+ }
+
+ private static class InnerClass2 {
+
+ }
+}
diff --git a/tests/bugs193/333274/ma2/Annotation1.class b/tests/bugs193/333274/ma2/Annotation1.class
new file mode 100644
index 000000000..d80fc01a0
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Annotation1.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/Annotation1.java b/tests/bugs193/333274/ma2/Annotation1.java
new file mode 100644
index 000000000..6ad8455bf
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Annotation1.java
@@ -0,0 +1,15 @@
+package ma2;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+
+@Target( { ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.ANNOTATION_TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface Annotation1 {
+
+}
diff --git a/tests/bugs193/333274/ma2/Annotation2.class b/tests/bugs193/333274/ma2/Annotation2.class
new file mode 100644
index 000000000..1b4bb2163
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Annotation2.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/Annotation2.java b/tests/bugs193/333274/ma2/Annotation2.java
new file mode 100644
index 000000000..0d0d9684a
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Annotation2.java
@@ -0,0 +1,12 @@
+package ma2;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Annotation2 {
+
+}
diff --git a/tests/bugs193/333274/ma2/Annotation3.class b/tests/bugs193/333274/ma2/Annotation3.class
new file mode 100644
index 000000000..7e8b176f8
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Annotation3.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/Annotation3.java b/tests/bugs193/333274/ma2/Annotation3.java
new file mode 100644
index 000000000..1b998875f
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Annotation3.java
@@ -0,0 +1,13 @@
+package ma2;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target( { ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.ANNOTATION_TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface Annotation3 {
+}
diff --git a/tests/bugs193/333274/ma2/Aspect1$InternalClass.class b/tests/bugs193/333274/ma2/Aspect1$InternalClass.class
new file mode 100644
index 000000000..f7f0bbee4
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Aspect1$InternalClass.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/Aspect1.class b/tests/bugs193/333274/ma2/Aspect1.class
new file mode 100644
index 000000000..924a2b06b
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Aspect1.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/Aspect1.java b/tests/bugs193/333274/ma2/Aspect1.java
new file mode 100644
index 000000000..b04104dea
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Aspect1.java
@@ -0,0 +1,34 @@
+package ma2;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+
+
+public aspect Aspect1 {
+
+ Object around(): (execution(@Annotation1 * *(..)) || execution(@Annotation1 *.new(..))) {
+
+ InternalClass ic = new InternalClass();
+
+ System.out.println(">In Aspect1");
+
+ try {
+ proceed();
+ } catch (Exception ignored) {
+
+ }
+
+ System.out.println("=In Aspect1");
+ try {
+ return proceed();
+ } finally {
+ System.out.println("<In Aspect1");
+ }
+
+ }
+
+ private static class InternalClass {
+ }
+
+}
diff --git a/tests/bugs193/333274/ma2/Aspect2.class b/tests/bugs193/333274/ma2/Aspect2.class
new file mode 100644
index 000000000..ee15521b5
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Aspect2.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/Aspect2.java b/tests/bugs193/333274/ma2/Aspect2.java
new file mode 100644
index 000000000..b7eae5e63
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Aspect2.java
@@ -0,0 +1,27 @@
+package ma2;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+
+public aspect Aspect2 {
+
+ Object around(): execution(@Annotation2 * *(..)) || execution(@Annotation2 *.new(..)) {
+/*
+ @Around("(execution(@ma.aspect2.Annotation2 * *(..)) || execution(@ma.aspect2.Annotation2 *.new(..)))")
+ public Object inExceptionTranslatorAspect(ProceedingJoinPoint pjp) throws Throwable {
+*/
+
+ System.out.println(">In Aspect2");
+
+ try {
+ Object returnedObject = proceed();
+ System.out.println("<In Aspect2");
+ return returnedObject;
+ } catch (Throwable thrownThrowable) {
+ System.out.println("<In Aspect2");
+ throw new RuntimeException(thrownThrowable);
+ }
+
+ }
+
+}
diff --git a/tests/bugs193/333274/ma2/Aspect3$InnerClass2.class b/tests/bugs193/333274/ma2/Aspect3$InnerClass2.class
new file mode 100644
index 000000000..ea611f5ca
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Aspect3$InnerClass2.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/Aspect3.class b/tests/bugs193/333274/ma2/Aspect3.class
new file mode 100644
index 000000000..3b3136a58
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Aspect3.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/Aspect3.java b/tests/bugs193/333274/ma2/Aspect3.java
new file mode 100644
index 000000000..80ef4a6fc
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Aspect3.java
@@ -0,0 +1,32 @@
+package ma2;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+
+public aspect Aspect3 {
+
+ Object around(): execution(@Annotation3 * *(..)) || execution(@Annotation3 *.new(..)) {
+/*
+ @Around("(execution(@ma.aspect3.Annotation3 * *(..)) || execution(@ma.aspect3.Annotation3 *.new(..)))")
+ public Object inTimeLimiterAspect(ProceedingJoinPoint pjp) throws Throwable {
+*/
+
+ InnerClass2 c = new InnerClass2();
+
+ System.out.println(">In Aspect3");
+ try {
+ Object returnedObject =proceed();
+ System.out.println("<In Aspect3");
+ return returnedObject;
+ } catch (Exception e) {
+ System.out.println("<In Aspect3");
+ throw new RuntimeException(e);
+ }
+
+ }
+
+ private static class InnerClass2 {
+
+ }
+}
diff --git a/tests/bugs193/333274/ma2/Main$Dummy.class b/tests/bugs193/333274/ma2/Main$Dummy.class
new file mode 100644
index 000000000..1760b8689
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Main$Dummy.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/Main.class b/tests/bugs193/333274/ma2/Main.class
new file mode 100644
index 000000000..a6c4317b1
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Main.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/Main.java b/tests/bugs193/333274/ma2/Main.java
new file mode 100644
index 000000000..434bee40d
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Main.java
@@ -0,0 +1,27 @@
+package ma2;
+
+public class Main {
+
+ public static class Dummy {
+
+ private int counter = 0;
+
+ @Annotation1
+ @Annotation2
+ @Annotation3
+ public int retryTranslateAndTimeLimited() {
+ System.out.println("Method call");
+ if (counter++ == 0) {
+ throw new IllegalStateException();
+ } else {
+ return 1;
+ }
+ }
+
+ }
+
+ public static void main(String[] args) {
+ new Dummy().retryTranslateAndTimeLimited();
+ }
+
+}
diff --git a/tests/bugs193/333274/ma2/Precedence.class b/tests/bugs193/333274/ma2/Precedence.class
new file mode 100644
index 000000000..5985ffb14
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Precedence.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/Precedence.java b/tests/bugs193/333274/ma2/Precedence.java
new file mode 100644
index 000000000..943a2fe5a
--- /dev/null
+++ b/tests/bugs193/333274/ma2/Precedence.java
@@ -0,0 +1,12 @@
+package ma2;
+
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.DeclarePrecedence;
+
+@Aspect
+@DeclarePrecedence("ma2.Aspect1, "
+ + "ma2.Aspect2, "
+ + "ma2.Aspect3")
+class Precedence {
+
+}
diff --git a/tests/bugs193/333274/ma2/aspect1/Annotation1.java b/tests/bugs193/333274/ma2/aspect1/Annotation1.java
new file mode 100644
index 000000000..7d6186f22
--- /dev/null
+++ b/tests/bugs193/333274/ma2/aspect1/Annotation1.java
@@ -0,0 +1,15 @@
+package ma.aspect1;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+
+@Target( { ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.ANNOTATION_TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface Annotation1 {
+
+}
diff --git a/tests/bugs193/333274/ma2/aspect1/Aspect1.java b/tests/bugs193/333274/ma2/aspect1/Aspect1.java
new file mode 100644
index 000000000..2f1a8f5ca
--- /dev/null
+++ b/tests/bugs193/333274/ma2/aspect1/Aspect1.java
@@ -0,0 +1,34 @@
+package ma.aspect1;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+
+
+public aspect Aspect1 {
+
+ Object around(): (execution(@Annotation1 * *(..)) || execution(@Annotation1 *.new(..))) {
+
+ InternalClass ic = new InternalClass();
+
+ System.out.println(">In Aspect1");
+
+ try {
+ proceed();
+ } catch (Exception ignored) {
+
+ }
+
+ System.out.println("=In Aspect1");
+ try {
+ return proceed();
+ } finally {
+ System.out.println("<In Aspect1");
+ }
+
+ }
+
+ private static class InternalClass {
+ }
+
+}
diff --git a/tests/bugs193/333274/ma2/aspect2/Annotation2.java b/tests/bugs193/333274/ma2/aspect2/Annotation2.java
new file mode 100644
index 000000000..159551c5e
--- /dev/null
+++ b/tests/bugs193/333274/ma2/aspect2/Annotation2.java
@@ -0,0 +1,14 @@
+package ma.aspect2;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target( { ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.ANNOTATION_TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface Annotation2 {
+
+}
diff --git a/tests/bugs193/333274/ma2/aspect2/Aspect2.java b/tests/bugs193/333274/ma2/aspect2/Aspect2.java
new file mode 100644
index 000000000..840065ed9
--- /dev/null
+++ b/tests/bugs193/333274/ma2/aspect2/Aspect2.java
@@ -0,0 +1,26 @@
+package ma.aspect2;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+
+@Aspect
+public class Aspect2 {
+
+ @Around("(execution(@ma.aspect2.Annotation2 * *(..)) || execution(@ma.aspect2.Annotation2 *.new(..)))")
+ public Object inExceptionTranslatorAspect(ProceedingJoinPoint pjp) throws Throwable {
+
+ System.out.println(">In Aspect2");
+
+ try {
+ Object returnedObject = pjp.proceed();
+ System.out.println("<In Aspect2");
+ return returnedObject;
+ } catch (Throwable thrownThrowable) {
+ System.out.println("<In Aspect2");
+ throw thrownThrowable;
+ }
+
+ }
+
+}
diff --git a/tests/bugs193/333274/ma2/aspect3/Annotation3.java b/tests/bugs193/333274/ma2/aspect3/Annotation3.java
new file mode 100644
index 000000000..0bbae2af3
--- /dev/null
+++ b/tests/bugs193/333274/ma2/aspect3/Annotation3.java
@@ -0,0 +1,13 @@
+package ma.aspect3;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target( { ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.ANNOTATION_TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface Annotation3 {
+}
diff --git a/tests/bugs193/333274/ma2/aspect3/Aspect3.java b/tests/bugs193/333274/ma2/aspect3/Aspect3.java
new file mode 100644
index 000000000..e5f3a0273
--- /dev/null
+++ b/tests/bugs193/333274/ma2/aspect3/Aspect3.java
@@ -0,0 +1,30 @@
+package ma.aspect3;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+
+@Aspect
+public class Aspect3 {
+
+ @Around("(execution(@ma.aspect3.Annotation3 * *(..)) || execution(@ma.aspect3.Annotation3 *.new(..)))")
+ public Object inTimeLimiterAspect(ProceedingJoinPoint pjp) throws Throwable {
+
+ InnerClass2 c = new InnerClass2();
+
+ System.out.println(">In Aspect3");
+ try {
+ Object returnedObject = pjp.proceed();
+ System.out.println("<In Aspect3");
+ return returnedObject;
+ } catch (Exception e) {
+ System.out.println("<In Aspect3");
+ throw e;
+ }
+
+ }
+
+ private static class InnerClass2 {
+
+ }
+}
diff --git a/tests/bugs193/333274/ma2/ma2/Annotation1.class b/tests/bugs193/333274/ma2/ma2/Annotation1.class
new file mode 100644
index 000000000..d80fc01a0
--- /dev/null
+++ b/tests/bugs193/333274/ma2/ma2/Annotation1.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/ma2/Annotation2.class b/tests/bugs193/333274/ma2/ma2/Annotation2.class
new file mode 100644
index 000000000..1b4bb2163
--- /dev/null
+++ b/tests/bugs193/333274/ma2/ma2/Annotation2.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/ma2/Annotation3.class b/tests/bugs193/333274/ma2/ma2/Annotation3.class
new file mode 100644
index 000000000..7e8b176f8
--- /dev/null
+++ b/tests/bugs193/333274/ma2/ma2/Annotation3.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/ma2/Aspect1$InternalClass.class b/tests/bugs193/333274/ma2/ma2/Aspect1$InternalClass.class
new file mode 100644
index 000000000..f7f0bbee4
--- /dev/null
+++ b/tests/bugs193/333274/ma2/ma2/Aspect1$InternalClass.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/ma2/Aspect1.class b/tests/bugs193/333274/ma2/ma2/Aspect1.class
new file mode 100644
index 000000000..924a2b06b
--- /dev/null
+++ b/tests/bugs193/333274/ma2/ma2/Aspect1.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/ma2/Aspect2.class b/tests/bugs193/333274/ma2/ma2/Aspect2.class
new file mode 100644
index 000000000..ee15521b5
--- /dev/null
+++ b/tests/bugs193/333274/ma2/ma2/Aspect2.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/ma2/Aspect3$InnerClass2.class b/tests/bugs193/333274/ma2/ma2/Aspect3$InnerClass2.class
new file mode 100644
index 000000000..ea611f5ca
--- /dev/null
+++ b/tests/bugs193/333274/ma2/ma2/Aspect3$InnerClass2.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/ma2/Aspect3.class b/tests/bugs193/333274/ma2/ma2/Aspect3.class
new file mode 100644
index 000000000..3b3136a58
--- /dev/null
+++ b/tests/bugs193/333274/ma2/ma2/Aspect3.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/ma2/Main$Dummy.class b/tests/bugs193/333274/ma2/ma2/Main$Dummy.class
new file mode 100644
index 000000000..1760b8689
--- /dev/null
+++ b/tests/bugs193/333274/ma2/ma2/Main$Dummy.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/ma2/Main.class b/tests/bugs193/333274/ma2/ma2/Main.class
new file mode 100644
index 000000000..a6c4317b1
--- /dev/null
+++ b/tests/bugs193/333274/ma2/ma2/Main.class
Binary files differ
diff --git a/tests/bugs193/333274/ma2/ma2/Precedence.class b/tests/bugs193/333274/ma2/ma2/Precedence.class
new file mode 100644
index 000000000..5985ffb14
--- /dev/null
+++ b/tests/bugs193/333274/ma2/ma2/Precedence.class
Binary files differ