Fix 030-bad-finalizer & 059-finalizer-throw.
Use a default uncaught exception handler to log messages.
bug: 25759624
Change-Id: I9f3253261e15cd62bd433e01b852ecae40a8f58d
diff --git a/test/030-bad-finalizer/expected.txt b/test/030-bad-finalizer/expected.txt
index ee9cfff..c1f3f4f 100644
--- a/test/030-bad-finalizer/expected.txt
+++ b/test/030-bad-finalizer/expected.txt
@@ -2,3 +2,4 @@
Finalizer started and spinning...
Finalizer done spinning.
Finalizer sleeping forever now.
+Caught exception: Main$BadFinalizer.finalize() timed out after 10 seconds
diff --git a/test/030-bad-finalizer/src/Main.java b/test/030-bad-finalizer/src/Main.java
index 942ee25..79b53ef 100644
--- a/test/030-bad-finalizer/src/Main.java
+++ b/test/030-bad-finalizer/src/Main.java
@@ -21,6 +21,15 @@
public static void main(String[] args) {
BadFinalizer bf = new BadFinalizer();
+ Thread.setDefaultUncaughtExceptionHandler(
+ new Thread.UncaughtExceptionHandler() {
+ @Override
+ public void uncaughtException(Thread t, Throwable e) {
+ System.out.println("Caught exception: " + e.getMessage());
+ System.exit(0);
+ }
+ });
+
System.out.println("About to null reference and request GC.");
bf = null;
Runtime.getRuntime().gc();
diff --git a/test/059-finalizer-throw/expected.txt b/test/059-finalizer-throw/expected.txt
index cbc9ece..fb4c3aa 100644
--- a/test/059-finalizer-throw/expected.txt
+++ b/test/059-finalizer-throw/expected.txt
@@ -1,2 +1,2 @@
In finalizer
-done
+Caught exception: whee
diff --git a/test/059-finalizer-throw/src/Main.java b/test/059-finalizer-throw/src/Main.java
index fa80fe3..e863e83 100644
--- a/test/059-finalizer-throw/src/Main.java
+++ b/test/059-finalizer-throw/src/Main.java
@@ -30,6 +30,14 @@
}
public static void main(String[] args) {
+ Thread.setDefaultUncaughtExceptionHandler(
+ new Thread.UncaughtExceptionHandler() {
+ @Override
+ public void uncaughtException(Thread t, Throwable e) {
+ System.out.println("Caught exception: " + e.getMessage());
+ }
+ });
+
createAndForget();
System.gc();
@@ -56,8 +64,6 @@
} catch (InterruptedException ie) {
System.err.println(ie);
}
-
- System.out.println("done");
}
protected void finalize() throws Throwable {