summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraclement <aclement>2009-05-28 00:12:47 +0000
committeraclement <aclement>2009-05-28 00:12:47 +0000
commit6f76bb72e9d65b5e340736c7a61c2ad047d67686 (patch)
tree8574062ea2a04e8e7d2bf1a9fcc073ee52812b8d
parent25492effbb0cd1137a5c72df365d70602bd3e049 (diff)
downloadaspectj-6f76bb72e9d65b5e340736c7a61c2ad047d67686.tar.gz
aspectj-6f76bb72e9d65b5e340736c7a61c2ad047d67686.zip
277959: stack depth must be at least one if there is an exception handler
-rw-r--r--tests/bugs165/pr277959/AOPTest.java32
-rw-r--r--tests/bugs165/pr277959/CodeAspect.java14
-rw-r--r--tests/src/org/aspectj/systemtest/ajc165/Ajc165Tests.java4
-rw-r--r--tests/src/org/aspectj/systemtest/ajc165/ajc165.xml5
4 files changed, 55 insertions, 0 deletions
diff --git a/tests/bugs165/pr277959/AOPTest.java b/tests/bugs165/pr277959/AOPTest.java
new file mode 100644
index 000000000..593e6a3d5
--- /dev/null
+++ b/tests/bugs165/pr277959/AOPTest.java
@@ -0,0 +1,32 @@
+/*
+ * AOPTest
+ * Copyright (c) 2001-2006 MessageOne Inc.
+ */
+package example;
+
+public class AOPTest {
+ public static void doSomething() {}
+
+ public static void cleanup() {
+ try {
+ doSomething();
+ doSomething();
+ } catch(Exception ex) {
+ // ignore
+ }
+ }
+ public static void cleanup2() {
+ try {
+
+ doSomething();
+ } catch(Exception ex) {
+ // ignore
+ }
+ }
+
+
+ public static void main(String[] args) throws Throwable {
+ AOPTest.cleanup();
+ }
+}
+
diff --git a/tests/bugs165/pr277959/CodeAspect.java b/tests/bugs165/pr277959/CodeAspect.java
new file mode 100644
index 000000000..dd3017ace
--- /dev/null
+++ b/tests/bugs165/pr277959/CodeAspect.java
@@ -0,0 +1,14 @@
+import java.lang.Class;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.aspectj.lang.*;
+
+public aspect CodeAspect {
+ pointcut getPointcut()
+ : execution(public * example.AOPTest.cleanup());
+
+ Object around() : getPointcut() {
+ System.out.println("ASPECT WORKING");
+ //Just call the underlying method
+ return proceed();
+ }
+}
diff --git a/tests/src/org/aspectj/systemtest/ajc165/Ajc165Tests.java b/tests/src/org/aspectj/systemtest/ajc165/Ajc165Tests.java
index 9d1a6159b..cd67252a0 100644
--- a/tests/src/org/aspectj/systemtest/ajc165/Ajc165Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc165/Ajc165Tests.java
@@ -20,6 +20,10 @@ import org.aspectj.weaver.LintMessage;
public class Ajc165Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
+ public void testVerifyError_pr277959() {
+ runTest("verifyerror");
+ }
+
public void testIfNames_pr277508() {
runTest("if method names");
}
diff --git a/tests/src/org/aspectj/systemtest/ajc165/ajc165.xml b/tests/src/org/aspectj/systemtest/ajc165/ajc165.xml
index cacaf1b84..dc8d533c9 100644
--- a/tests/src/org/aspectj/systemtest/ajc165/ajc165.xml
+++ b/tests/src/org/aspectj/systemtest/ajc165/ajc165.xml
@@ -2,6 +2,11 @@
<suite>
+ <ajc-test dir="bugs165/pr277959" title="verifyerror">
+ <compile files="AOPTest.java CodeAspect.java" options="-1.5"/>
+ <run class="example.AOPTest"/>
+ </ajc-test>
+
<ajc-test dir="bugs165/pr277508" title="if method names">
<compile files="Basic.java" options="-1.5"/>
<run class="Basic">