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