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) { + } +}