From 90b260074423dc1fbafc3a33764606a58cb78f90 Mon Sep 17 00:00:00 2001 From: wisberg <wisberg> Date: Wed, 23 Apr 2003 00:32:49 +0000 Subject: @testcase try/finally in around advice (same as ...messy arounds?) Works in current tree, but not in 1.1rc1 --- tests/new/TryFinallyInAround.java | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tests/new/TryFinallyInAround.java (limited to 'tests/new') diff --git a/tests/new/TryFinallyInAround.java b/tests/new/TryFinallyInAround.java new file mode 100644 index 000000000..b963eab0d --- /dev/null +++ b/tests/new/TryFinallyInAround.java @@ -0,0 +1,39 @@ + +import org.aspectj.testing.Tester; + +// XXX broken in 1.1rc1, fixed in tree as of 4/22 +/** @testcase try/finally in around advice (same as ...messy arounds?) */ +public class TryFinallyInAround { + public static void main(String[] args) { + int i = new C().go(); + Tester.check(2 == i, "expected 2 got " + i); + } +} + +class C { + int i = 1; + int go() { + dowork(); + return i; + } + void dowork() { + i++; + } +} + +aspect A { + Object around() : + within(C) + && !cflow(within(A)) + && !handler(*) + && !preinitialization(new(..)) // 1.1 + && !initialization(new(..)) + { + // no bug if reduced to proceed(); + try { + return proceed(); + } finally { + if (false) System.out.println("ok"); + } + } +} -- cgit v1.2.3