Index: src/org/aspectj/systemtest/ajc150/Ajc150Tests.java
===================================================================
RCS file: /home/technology/org.aspectj/modules/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java,v
--- src/org/aspectj/systemtest/ajc150/Ajc150Tests.java 11 Nov 2005 11:23:43 -0000 1.128
+++ src/org/aspectj/systemtest/ajc150/Ajc150Tests.java 14 Nov 2005 09:33:51 -0000
@@ -702,6 +702,13 @@
runTest("no verify error with two args pcds");
}
+ public void testNoStackOverflowWithCircularPCDInGenericAspect() {
+ runTest("no StackOverflowError with circular pcd in generic aspect");
+ }
+
+ public void testNoStackOverflowWithCircularPCDInGenericAspect2() {
+ runTest("no StackOverflowError with circular pcd in generic aspect - 2");
+ }
// helper methods.....
Index: src/org/aspectj/systemtest/ajc150/ajc150.xml
===================================================================
RCS file: /home/technology/org.aspectj/modules/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml,v
--- src/org/aspectj/systemtest/ajc150/ajc150.xml 11 Nov 2005 11:23:43 -0000 1.205
+++ src/org/aspectj/systemtest/ajc150/ajc150.xml 14 Nov 2005 09:33:55 -0000
@@ -970,6 +970,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: bugs150/pr115235.aj
===================================================================
RCS file: bugs150/pr115235.aj
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ bugs150/pr115235.aj 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,22 @@
+abstract aspect GenericAbstractAspect{
+ abstract protected pointcut pc();
+ before() : pc() {}
+}
+
+aspect Concrete extends GenericAbstractAspect {
+ // should get circular dependency error message from this
+ protected pointcut pc() : pc();
+}
+
+aspect Concrete2 extends GenericAbstractAspect {
+ // this should compile as expected
+ protected pointcut pc() : p1();
+ pointcut p1() : call(void Concrete2.foo(..));
+}
+
+aspect Concrete3 extends GenericAbstractAspect {
+ // should get circular dependency error message from this
+ protected pointcut pc() : pc1();
+ pointcut pc1() : pc2();
+ pointcut pc2() : pc();
+}
Index: bugs150/pr115235b.aj
===================================================================
RCS file: bugs150/pr115235b.aj
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ bugs150/pr115235b.aj 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,28 @@
+abstract aspect GenericAbstractAspect {
+ abstract protected pointcut pc();
+ before() : pc() {}
+}
+
+abstract aspect SubGenericAspect extends GenericAbstractAspect {
+ abstract protected pointcut pc1();
+ abstract protected pointcut pc3();
+
+ protected pointcut pc() : pc1();
+ protected pointcut pc2() : pc3();
+}
+
+// this should compile with no errors
+aspect Concrete2 extends SubGenericAspect {
+ protected pointcut pc() : pc1();
+ protected pointcut pc1() :pc3();
+ protected pointcut pc3() : execution(* *(String));
+}
+
+class C {
+
+ public void method(String s) {
+ }
+
+ public void method2(int i) {
+ }
+}