summaryrefslogtreecommitdiff
path: root/test/008-exceptions/src/Main.java
diff options
context:
space:
mode:
author Andreas Gampe <agampe@google.com> 2015-11-02 16:20:00 -0800
committer Andreas Gampe <agampe@google.com> 2015-11-04 18:01:26 -0800
commitcb086955c2a21270cd2f53a8bce71e577d776506 (patch)
treebe580e6a4050539b2785d6d92cb9e71507c075d2 /test/008-exceptions/src/Main.java
parentaccc24985c08e98a27f43bc856fba4c3c48e79e9 (diff)
ART: Change behavior for rethrowing init failures (2)
Always store the pending exception when making a class erroneous. Instead of filtering by ExceptionInInitializerError, add an option to the rethrow that enforces a NoClassDefFoundError, which is required by the specification. Use the libcore companion change to add the stored error (if any) as a cause to the NoClassDefFoundError, which should significantly help tracking down issues. Fix run-test 008 to expect spec-compliant behavior. Test that a cause has been set. Bug: 25445103 Change-Id: I6a0dc54e78312283faf23415887eff387531407f
Diffstat (limited to 'test/008-exceptions/src/Main.java')
-rw-r--r--test/008-exceptions/src/Main.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/test/008-exceptions/src/Main.java b/test/008-exceptions/src/Main.java
index c0502047d0..9e3477a47b 100644
--- a/test/008-exceptions/src/Main.java
+++ b/test/008-exceptions/src/Main.java
@@ -98,8 +98,9 @@ public class Main {
try {
BadInit.dummy = 1;
throw new IllegalStateException("Should not reach here.");
- } catch (BadError e) {
+ } catch (NoClassDefFoundError e) {
System.out.println(e);
+ System.out.println(e.getCause());
}
} catch (Exception error) {
error.printStackTrace();
@@ -120,8 +121,9 @@ public class Main {
try {
BadInitNoStringInit.dummy = 1;
throw new IllegalStateException("Should not reach here.");
- } catch (BadErrorNoStringInit e) {
+ } catch (NoClassDefFoundError e) {
System.out.println(e);
+ System.out.println(e.getCause());
}
} catch (Exception error) {
error.printStackTrace();