test/java/lang/Thread/UncaughtExceptions.sh

Print this page




 106 
 107 class NeverInvoked implements UncaughtExceptionHandler {
 108     public void uncaughtException(Thread t, Throwable e) {
 109         err.println("Test failure: This handler should never be invoked!");
 110     }
 111 }
 112 
 113 public class Seppuku extends Thread implements Runnable {
 114     public static void seppuku() { throw new RuntimeException("Seppuku!"); }
 115 
 116     public void run() { seppuku(); }
 117 
 118     public static void main(String[] args) throws Exception {
 119         $mainBody
 120     }
 121 }
 122 EOJAVA
 123 
 124     Sys "$javac" ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} "Seppuku.java"
 125     CheckCommandResults "$expectedRC" "$expectedOut" "$expectedErr" \
 126         "$java" "Seppuku"
 127     Cleanup
 128 }
 129 
 130 #----------------------------------------------------------------
 131 # A thread is never alive after you've join()ed it.
 132 #----------------------------------------------------------------
 133 Run 0 "OK" "Exception in thread \"Thread-0\".*Seppuku" "
 134     Thread t = new Seppuku();
 135     t.start(); t.join();
 136     if (! t.isAlive())
 137         out.println(\"OK\");"
 138 
 139 #----------------------------------------------------------------
 140 # Even the main thread is mortal - here it terminates "abruptly"
 141 #----------------------------------------------------------------
 142 Run 1 "OK" "Exception in thread \"main\".*Seppuku" "
 143     final Thread mainThread = currentThread();
 144     new Thread() { public void run() {
 145         try { mainThread.join(); }
 146         catch (InterruptedException e) {}




 106 
 107 class NeverInvoked implements UncaughtExceptionHandler {
 108     public void uncaughtException(Thread t, Throwable e) {
 109         err.println("Test failure: This handler should never be invoked!");
 110     }
 111 }
 112 
 113 public class Seppuku extends Thread implements Runnable {
 114     public static void seppuku() { throw new RuntimeException("Seppuku!"); }
 115 
 116     public void run() { seppuku(); }
 117 
 118     public static void main(String[] args) throws Exception {
 119         $mainBody
 120     }
 121 }
 122 EOJAVA
 123 
 124     Sys "$javac" ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} "Seppuku.java"
 125     CheckCommandResults "$expectedRC" "$expectedOut" "$expectedErr" \
 126         "$java" ${TESTVMOPTS} ${TESTJAVAOPTS} "Seppuku"
 127     Cleanup
 128 }
 129 
 130 #----------------------------------------------------------------
 131 # A thread is never alive after you've join()ed it.
 132 #----------------------------------------------------------------
 133 Run 0 "OK" "Exception in thread \"Thread-0\".*Seppuku" "
 134     Thread t = new Seppuku();
 135     t.start(); t.join();
 136     if (! t.isAlive())
 137         out.println(\"OK\");"
 138 
 139 #----------------------------------------------------------------
 140 # Even the main thread is mortal - here it terminates "abruptly"
 141 #----------------------------------------------------------------
 142 Run 1 "OK" "Exception in thread \"main\".*Seppuku" "
 143     final Thread mainThread = currentThread();
 144     new Thread() { public void run() {
 145         try { mainThread.join(); }
 146         catch (InterruptedException e) {}