]> source.dussan.org Git - aspectj.git/commitdiff
Testcode for 333274
authorAndy Clement <aclement@pivotal.io>
Tue, 19 Feb 2019 16:56:29 +0000 (08:56 -0800)
committerAndy Clement <aclement@pivotal.io>
Tue, 19 Feb 2019 16:56:29 +0000 (08:56 -0800)
44 files changed:
tests/bugs193/333274/ma/Main.java [new file with mode: 0644]
tests/bugs193/333274/ma/Precedence.java [new file with mode: 0644]
tests/bugs193/333274/ma/aspect1/Annotation1.java [new file with mode: 0644]
tests/bugs193/333274/ma/aspect1/Aspect1.java [new file with mode: 0644]
tests/bugs193/333274/ma/aspect2/Annotation2.java [new file with mode: 0644]
tests/bugs193/333274/ma/aspect2/Aspect2.java [new file with mode: 0644]
tests/bugs193/333274/ma/aspect3/Annotation3.java [new file with mode: 0644]
tests/bugs193/333274/ma/aspect3/Aspect3.java [new file with mode: 0644]
tests/bugs193/333274/ma2/Annotation1.class [new file with mode: 0644]
tests/bugs193/333274/ma2/Annotation1.java [new file with mode: 0644]
tests/bugs193/333274/ma2/Annotation2.class [new file with mode: 0644]
tests/bugs193/333274/ma2/Annotation2.java [new file with mode: 0644]
tests/bugs193/333274/ma2/Annotation3.class [new file with mode: 0644]
tests/bugs193/333274/ma2/Annotation3.java [new file with mode: 0644]
tests/bugs193/333274/ma2/Aspect1$InternalClass.class [new file with mode: 0644]
tests/bugs193/333274/ma2/Aspect1.class [new file with mode: 0644]
tests/bugs193/333274/ma2/Aspect1.java [new file with mode: 0644]
tests/bugs193/333274/ma2/Aspect2.class [new file with mode: 0644]
tests/bugs193/333274/ma2/Aspect2.java [new file with mode: 0644]
tests/bugs193/333274/ma2/Aspect3$InnerClass2.class [new file with mode: 0644]
tests/bugs193/333274/ma2/Aspect3.class [new file with mode: 0644]
tests/bugs193/333274/ma2/Aspect3.java [new file with mode: 0644]
tests/bugs193/333274/ma2/Main$Dummy.class [new file with mode: 0644]
tests/bugs193/333274/ma2/Main.class [new file with mode: 0644]
tests/bugs193/333274/ma2/Main.java [new file with mode: 0644]
tests/bugs193/333274/ma2/Precedence.class [new file with mode: 0644]
tests/bugs193/333274/ma2/Precedence.java [new file with mode: 0644]
tests/bugs193/333274/ma2/aspect1/Annotation1.java [new file with mode: 0644]
tests/bugs193/333274/ma2/aspect1/Aspect1.java [new file with mode: 0644]
tests/bugs193/333274/ma2/aspect2/Annotation2.java [new file with mode: 0644]
tests/bugs193/333274/ma2/aspect2/Aspect2.java [new file with mode: 0644]
tests/bugs193/333274/ma2/aspect3/Annotation3.java [new file with mode: 0644]
tests/bugs193/333274/ma2/aspect3/Aspect3.java [new file with mode: 0644]
tests/bugs193/333274/ma2/ma2/Annotation1.class [new file with mode: 0644]
tests/bugs193/333274/ma2/ma2/Annotation2.class [new file with mode: 0644]
tests/bugs193/333274/ma2/ma2/Annotation3.class [new file with mode: 0644]
tests/bugs193/333274/ma2/ma2/Aspect1$InternalClass.class [new file with mode: 0644]
tests/bugs193/333274/ma2/ma2/Aspect1.class [new file with mode: 0644]
tests/bugs193/333274/ma2/ma2/Aspect2.class [new file with mode: 0644]
tests/bugs193/333274/ma2/ma2/Aspect3$InnerClass2.class [new file with mode: 0644]
tests/bugs193/333274/ma2/ma2/Aspect3.class [new file with mode: 0644]
tests/bugs193/333274/ma2/ma2/Main$Dummy.class [new file with mode: 0644]
tests/bugs193/333274/ma2/ma2/Main.class [new file with mode: 0644]
tests/bugs193/333274/ma2/ma2/Precedence.class [new file with mode: 0644]

diff --git a/tests/bugs193/333274/ma/Main.java b/tests/bugs193/333274/ma/Main.java
new file mode 100644 (file)
index 0000000..f86ba3c
--- /dev/null
@@ -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 (file)
index 0000000..3b60b46
--- /dev/null
@@ -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 (file)
index 0000000..7d6186f
--- /dev/null
@@ -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 (file)
index 0000000..8883be8
--- /dev/null
@@ -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 (file)
index 0000000..159551c
--- /dev/null
@@ -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 (file)
index 0000000..840065e
--- /dev/null
@@ -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 (file)
index 0000000..0bbae2a
--- /dev/null
@@ -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 (file)
index 0000000..e5f3a02
--- /dev/null
@@ -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 (file)
index 0000000..d80fc01
Binary files /dev/null and b/tests/bugs193/333274/ma2/Annotation1.class differ
diff --git a/tests/bugs193/333274/ma2/Annotation1.java b/tests/bugs193/333274/ma2/Annotation1.java
new file mode 100644 (file)
index 0000000..6ad8455
--- /dev/null
@@ -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 (file)
index 0000000..1b4bb21
Binary files /dev/null and b/tests/bugs193/333274/ma2/Annotation2.class differ
diff --git a/tests/bugs193/333274/ma2/Annotation2.java b/tests/bugs193/333274/ma2/Annotation2.java
new file mode 100644 (file)
index 0000000..0d0d968
--- /dev/null
@@ -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 (file)
index 0000000..7e8b176
Binary files /dev/null and b/tests/bugs193/333274/ma2/Annotation3.class differ
diff --git a/tests/bugs193/333274/ma2/Annotation3.java b/tests/bugs193/333274/ma2/Annotation3.java
new file mode 100644 (file)
index 0000000..1b99887
--- /dev/null
@@ -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 (file)
index 0000000..f7f0bbe
Binary files /dev/null and b/tests/bugs193/333274/ma2/Aspect1$InternalClass.class differ
diff --git a/tests/bugs193/333274/ma2/Aspect1.class b/tests/bugs193/333274/ma2/Aspect1.class
new file mode 100644 (file)
index 0000000..924a2b0
Binary files /dev/null and b/tests/bugs193/333274/ma2/Aspect1.class differ
diff --git a/tests/bugs193/333274/ma2/Aspect1.java b/tests/bugs193/333274/ma2/Aspect1.java
new file mode 100644 (file)
index 0000000..b04104d
--- /dev/null
@@ -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 (file)
index 0000000..ee15521
Binary files /dev/null and b/tests/bugs193/333274/ma2/Aspect2.class differ
diff --git a/tests/bugs193/333274/ma2/Aspect2.java b/tests/bugs193/333274/ma2/Aspect2.java
new file mode 100644 (file)
index 0000000..b7eae5e
--- /dev/null
@@ -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 (file)
index 0000000..ea611f5
Binary files /dev/null and b/tests/bugs193/333274/ma2/Aspect3$InnerClass2.class differ
diff --git a/tests/bugs193/333274/ma2/Aspect3.class b/tests/bugs193/333274/ma2/Aspect3.class
new file mode 100644 (file)
index 0000000..3b3136a
Binary files /dev/null and b/tests/bugs193/333274/ma2/Aspect3.class differ
diff --git a/tests/bugs193/333274/ma2/Aspect3.java b/tests/bugs193/333274/ma2/Aspect3.java
new file mode 100644 (file)
index 0000000..80ef4a6
--- /dev/null
@@ -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 (file)
index 0000000..1760b86
Binary files /dev/null and b/tests/bugs193/333274/ma2/Main$Dummy.class differ
diff --git a/tests/bugs193/333274/ma2/Main.class b/tests/bugs193/333274/ma2/Main.class
new file mode 100644 (file)
index 0000000..a6c4317
Binary files /dev/null and b/tests/bugs193/333274/ma2/Main.class differ
diff --git a/tests/bugs193/333274/ma2/Main.java b/tests/bugs193/333274/ma2/Main.java
new file mode 100644 (file)
index 0000000..434bee4
--- /dev/null
@@ -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 (file)
index 0000000..5985ffb
Binary files /dev/null and b/tests/bugs193/333274/ma2/Precedence.class differ
diff --git a/tests/bugs193/333274/ma2/Precedence.java b/tests/bugs193/333274/ma2/Precedence.java
new file mode 100644 (file)
index 0000000..943a2fe
--- /dev/null
@@ -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 (file)
index 0000000..7d6186f
--- /dev/null
@@ -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 (file)
index 0000000..2f1a8f5
--- /dev/null
@@ -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 (file)
index 0000000..159551c
--- /dev/null
@@ -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 (file)
index 0000000..840065e
--- /dev/null
@@ -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 (file)
index 0000000..0bbae2a
--- /dev/null
@@ -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 (file)
index 0000000..e5f3a02
--- /dev/null
@@ -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 (file)
index 0000000..d80fc01
Binary files /dev/null and b/tests/bugs193/333274/ma2/ma2/Annotation1.class differ
diff --git a/tests/bugs193/333274/ma2/ma2/Annotation2.class b/tests/bugs193/333274/ma2/ma2/Annotation2.class
new file mode 100644 (file)
index 0000000..1b4bb21
Binary files /dev/null and b/tests/bugs193/333274/ma2/ma2/Annotation2.class differ
diff --git a/tests/bugs193/333274/ma2/ma2/Annotation3.class b/tests/bugs193/333274/ma2/ma2/Annotation3.class
new file mode 100644 (file)
index 0000000..7e8b176
Binary files /dev/null and b/tests/bugs193/333274/ma2/ma2/Annotation3.class 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 (file)
index 0000000..f7f0bbe
Binary files /dev/null and b/tests/bugs193/333274/ma2/ma2/Aspect1$InternalClass.class differ
diff --git a/tests/bugs193/333274/ma2/ma2/Aspect1.class b/tests/bugs193/333274/ma2/ma2/Aspect1.class
new file mode 100644 (file)
index 0000000..924a2b0
Binary files /dev/null and b/tests/bugs193/333274/ma2/ma2/Aspect1.class differ
diff --git a/tests/bugs193/333274/ma2/ma2/Aspect2.class b/tests/bugs193/333274/ma2/ma2/Aspect2.class
new file mode 100644 (file)
index 0000000..ee15521
Binary files /dev/null and b/tests/bugs193/333274/ma2/ma2/Aspect2.class 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 (file)
index 0000000..ea611f5
Binary files /dev/null and b/tests/bugs193/333274/ma2/ma2/Aspect3$InnerClass2.class differ
diff --git a/tests/bugs193/333274/ma2/ma2/Aspect3.class b/tests/bugs193/333274/ma2/ma2/Aspect3.class
new file mode 100644 (file)
index 0000000..3b3136a
Binary files /dev/null and b/tests/bugs193/333274/ma2/ma2/Aspect3.class 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 (file)
index 0000000..1760b86
Binary files /dev/null and b/tests/bugs193/333274/ma2/ma2/Main$Dummy.class differ
diff --git a/tests/bugs193/333274/ma2/ma2/Main.class b/tests/bugs193/333274/ma2/ma2/Main.class
new file mode 100644 (file)
index 0000000..a6c4317
Binary files /dev/null and b/tests/bugs193/333274/ma2/ma2/Main.class differ
diff --git a/tests/bugs193/333274/ma2/ma2/Precedence.class b/tests/bugs193/333274/ma2/ma2/Precedence.class
new file mode 100644 (file)
index 0000000..5985ffb
Binary files /dev/null and b/tests/bugs193/333274/ma2/ma2/Precedence.class differ