aboutsummaryrefslogtreecommitdiffstats
path: root/tests/bugs187
diff options
context:
space:
mode:
authorAndy Clement <aclement@pivotal.io>2015-09-02 09:49:22 -0700
committerAndy Clement <aclement@pivotal.io>2015-09-02 09:49:22 -0700
commita9ea7010ab7075d934aeb49d48dec33d48b722c4 (patch)
treeb20190f922e7d3d434d9f4cac2f95a0794aa20c1 /tests/bugs187
parent415ef622d9435806ef0736341402772487deed23 (diff)
downloadaspectj-a9ea7010ab7075d934aeb49d48dec33d48b722c4.tar.gz
aspectj-a9ea7010ab7075d934aeb49d48dec33d48b722c4.zip
Bug 475152 - infinite loop during build time weaving when more than 2 aspects in hierarchy at org.aspectj.weaver.bcel.BcelAdvice.canInline
Diffstat (limited to 'tests/bugs187')
-rw-r--r--tests/bugs187/475152/AbstractAspect.aj5
-rw-r--r--tests/bugs187/475152/AjTarget.java9
-rw-r--r--tests/bugs187/475152/BaseAspect.aj15
-rw-r--r--tests/bugs187/475152/TestAspect.aj5
-rw-r--r--tests/bugs187/475152/TestClass.java11
5 files changed, 45 insertions, 0 deletions
diff --git a/tests/bugs187/475152/AbstractAspect.aj b/tests/bugs187/475152/AbstractAspect.aj
new file mode 100644
index 000000000..7003b8bf5
--- /dev/null
+++ b/tests/bugs187/475152/AbstractAspect.aj
@@ -0,0 +1,5 @@
+package ajtest;
+
+public abstract aspect AbstractAspect extends BaseAspect {
+
+}
diff --git a/tests/bugs187/475152/AjTarget.java b/tests/bugs187/475152/AjTarget.java
new file mode 100644
index 000000000..c025185ba
--- /dev/null
+++ b/tests/bugs187/475152/AjTarget.java
@@ -0,0 +1,9 @@
+package ajtest;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface AjTarget {
+
+}
diff --git a/tests/bugs187/475152/BaseAspect.aj b/tests/bugs187/475152/BaseAspect.aj
new file mode 100644
index 000000000..ddfaa3183
--- /dev/null
+++ b/tests/bugs187/475152/BaseAspect.aj
@@ -0,0 +1,15 @@
+package ajtest;
+
+import java.lang.reflect.Field;
+
+import ajtest.AjTarget;
+
+public abstract aspect BaseAspect {
+
+ protected pointcut mapped(Object obj) : get(@(AjTarget) Long *) && target(obj);
+
+ Object around(Object obj) : mapped(obj) {
+ Object value = proceed(obj);
+ return value;
+ }
+}
diff --git a/tests/bugs187/475152/TestAspect.aj b/tests/bugs187/475152/TestAspect.aj
new file mode 100644
index 000000000..be1adeaf0
--- /dev/null
+++ b/tests/bugs187/475152/TestAspect.aj
@@ -0,0 +1,5 @@
+package ajtest;
+
+public aspect TestAspect extends AbstractAspect {
+
+}
diff --git a/tests/bugs187/475152/TestClass.java b/tests/bugs187/475152/TestClass.java
new file mode 100644
index 000000000..1b13a90e1
--- /dev/null
+++ b/tests/bugs187/475152/TestClass.java
@@ -0,0 +1,11 @@
+package ajtest;
+
+public class TestClass {
+ @AjTarget
+ private Long test;
+
+ public void testMethod() {
+ Object o = test;
+ System.out.println(o);
+ }
+}