aboutsummaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/src/org/aspectj/lang/NoAspectBoundException.java12
-rw-r--r--runtime/testsrc/RuntimeModuleTests.java8
2 files changed, 20 insertions, 0 deletions
diff --git a/runtime/src/org/aspectj/lang/NoAspectBoundException.java b/runtime/src/org/aspectj/lang/NoAspectBoundException.java
index 4bebcfb47..b21d3895c 100644
--- a/runtime/src/org/aspectj/lang/NoAspectBoundException.java
+++ b/runtime/src/org/aspectj/lang/NoAspectBoundException.java
@@ -18,4 +18,16 @@ package org.aspectj.lang;
* when there is no aspect of that type currently bound.
*/
public class NoAspectBoundException extends RuntimeException {
+ Throwable cause;
+ public NoAspectBoundException(String aspectName, Throwable inner) {
+ super(inner == null ? aspectName :
+ "Exception while initializing " +aspectName + ": " +inner);
+ this.cause = inner;
+ }
+
+ public NoAspectBoundException() {
+ }
+
+ public Throwable getCause() { return cause; }
+
}
diff --git a/runtime/testsrc/RuntimeModuleTests.java b/runtime/testsrc/RuntimeModuleTests.java
index fe36f3055..a426025c5 100644
--- a/runtime/testsrc/RuntimeModuleTests.java
+++ b/runtime/testsrc/RuntimeModuleTests.java
@@ -14,6 +14,8 @@
// default package
+import org.aspectj.lang.NoAspectBoundException;
+
import junit.framework.*;
public class RuntimeModuleTests extends TestCase {
@@ -27,4 +29,10 @@ public class RuntimeModuleTests extends TestCase {
public RuntimeModuleTests(String name) { super(name); }
public void testNothing() {}
+
+ public void testNoAspectBoundException() {
+ RuntimeException fun = new RuntimeException("fun");
+ NoAspectBoundException nab = new NoAspectBoundException("Foo", fun);
+ assertEquals(fun,nab.getCause());
+ }
}