1234567891011121314151617181920212223242526272829303132 |
-
- import org.aspectj.testing.*;
-
- /** PR#745 stack overflow expected when advice recurses into itself */
- public class AdviceOnAdviceRecursion { // XXX n-aspect variant?
- public static void main (String[] args) {
- boolean passed = false;
- Throwable ex = null;
- try {
- C.m();
- } catch (StackOverflowError e) {
- passed = true;
- } catch (Throwable e) {
- ex = e;
- }
- Tester.check(passed, "expected StackOverflowError, got " + ex);
- }
- }
-
- class C {
- static void m() { ; }
- }
-
- aspect A {
- before() : within(C) || within(B) {
- C.m();
- }
- }
-
- aspect B {
- before() : call(void m()) { }
- }
|