diff options
Diffstat (limited to 'tests/new/EmptyStack.java')
-rw-r--r-- | tests/new/EmptyStack.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/new/EmptyStack.java b/tests/new/EmptyStack.java new file mode 100644 index 000000000..464b8e4c8 --- /dev/null +++ b/tests/new/EmptyStack.java @@ -0,0 +1,36 @@ +import org.aspectj.lang.*; +import org.aspectj.testing.*; +import java.io.*; + +public class EmptyStack{ + public static void main(String[] args){ + try { + EmptyStackAspect.InnerEmptyStackAspect a = EmptyStackAspect.InnerEmptyStackAspect.aspectOf(); + } catch (java.util.EmptyStackException ese) { + String msg = ""; + class PW extends PrintWriter { + PW() { super((Writer)null); } + String msg = ""; + public void write(int c) { msg += c; } + } + PW pw = new PW(); + ese.printStackTrace(pw); + Tester.check(false, pw.msg); + } catch (NoAspectBoundException nae) { + Tester.note("caught NoAspectBound"); + } + + Tester.check("caught NoAspectBound"); + } +} + +abstract aspect EmptyStackAspect { + pointcut testCut(); + + public static aspect InnerEmptyStackAspect percflow(testCut()){ + } +} + +aspect MyEmptyStackAspect extends EmptyStackAspect issingleton() { + pointcut testCut(): call(void EmptyStack.test(..)) ; +} |