--- jsr166/src/test/tck/ThreadTest.java 2003/08/31 19:24:56 1.1 +++ jsr166/src/test/tck/ThreadTest.java 2003/09/20 00:31:57 1.4 @@ -6,14 +6,8 @@ */ import junit.framework.*; -import java.util.concurrent.Semaphore; -/** - * Test java.lang.Thread - * - */ - -public class ThreadTest extends TestCase { +public class ThreadTest extends JSR166TestCase { public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } @@ -33,20 +27,31 @@ public class ThreadTest extends TestCase // dependencies across tests Thread current = Thread.currentThread(); ThreadGroup tg = current.getThreadGroup(); - assertNull(Thread.getDefaultUncaughtExceptionHandler()); - assertEquals(tg, current.getUncaughtExceptionHandler()); MyHandler eh = new MyHandler(); - Thread.setDefaultUncaughtExceptionHandler(eh); - assertEquals(eh, current.getUncaughtExceptionHandler()); - assertEquals(eh, Thread.getDefaultUncaughtExceptionHandler()); - Thread.setDefaultUncaughtExceptionHandler(null); - assertNull(Thread.getDefaultUncaughtExceptionHandler()); assertEquals(tg, current.getUncaughtExceptionHandler()); current.setUncaughtExceptionHandler(eh); assertEquals(eh, current.getUncaughtExceptionHandler()); current.setUncaughtExceptionHandler(null); assertEquals(tg, current.getUncaughtExceptionHandler()); } + + public void testGetAndSetDefaultUncaughtExceptionHandler() { + assertEquals(null, Thread.getDefaultUncaughtExceptionHandler()); + // failure due to securityException is OK. + // Would be nice to explicitly test both ways, but cannot yet. + try { + Thread current = Thread.currentThread(); + ThreadGroup tg = current.getThreadGroup(); + MyHandler eh = new MyHandler(); + assertEquals(tg, current.getUncaughtExceptionHandler()); + Thread.setDefaultUncaughtExceptionHandler(eh); + Thread.setDefaultUncaughtExceptionHandler(null); + assertEquals(tg, current.getUncaughtExceptionHandler()); + } + catch(SecurityException ok) { + } + assertEquals(null, Thread.getDefaultUncaughtExceptionHandler()); + } // How to test actually using UEH within junit?