From 90b260074423dc1fbafc3a33764606a58cb78f90 Mon Sep 17 00:00:00 2001 From: wisberg Date: Wed, 23 Apr 2003 00:32:49 +0000 Subject: [PATCH] @testcase try/finally in around advice (same as ...messy arounds?) Works in current tree, but not in 1.1rc1 --- tests/ajcTests.xml | 6 +++++ tests/new/TryFinallyInAround.java | 39 +++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 tests/new/TryFinallyInAround.java diff --git a/tests/ajcTests.xml b/tests/ajcTests.xml index 8785b0b8a..7bc3af750 100644 --- a/tests/ajcTests.xml +++ b/tests/ajcTests.xml @@ -5850,5 +5850,11 @@ + + + + + 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"); + } + } +} -- 2.39.5