ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/ThreadTest.java
Revision: 1.21
Committed: Tue Mar 22 21:29:24 2022 UTC (2 years, 1 month ago) by dl
Branch: MAIN
CVS Tags: HEAD
Changes since 1.20: +1 -0 lines
Log Message:
Updates for jdk17+

File Contents

# Content
1 /*
2 * Written by Doug Lea with assistance from members of JCP JSR-166
3 * Expert Group and released to the public domain, as explained at
4 * http://creativecommons.org/publicdomain/zero/1.0/
5 * Other contributors include Andrew Wright, Jeffrey Hayes,
6 * Pat Fisher, Mike Judd.
7 */
8
9 import junit.framework.Test;
10 import junit.framework.TestSuite;
11
12 public class ThreadTest extends JSR166TestCase {
13 public static void main(String[] args) {
14 main(suite(), args);
15 }
16
17 public static Test suite() {
18 return new TestSuite(ThreadTest.class);
19 }
20
21 static class MyHandler implements Thread.UncaughtExceptionHandler {
22 public void uncaughtException(Thread t, Throwable e) {
23 e.printStackTrace();
24 }
25 }
26
27 /**
28 * getUncaughtExceptionHandler returns ThreadGroup unless set,
29 * otherwise returning value of last setUncaughtExceptionHandler.
30 */
31 public void testGetAndSetUncaughtExceptionHandler() {
32 // these must be done all at once to avoid state
33 // dependencies across tests
34 Thread current = Thread.currentThread();
35 ThreadGroup tg = current.getThreadGroup();
36 MyHandler eh = new MyHandler();
37 assertSame(tg, current.getUncaughtExceptionHandler());
38 current.setUncaughtExceptionHandler(eh);
39 try {
40 assertSame(eh, current.getUncaughtExceptionHandler());
41 } finally {
42 current.setUncaughtExceptionHandler(null);
43 }
44 assertSame(tg, current.getUncaughtExceptionHandler());
45 }
46
47 /**
48 * getDefaultUncaughtExceptionHandler returns value of last
49 * setDefaultUncaughtExceptionHandler.
50 */
51 @SuppressWarnings("removal")
52 public void testGetAndSetDefaultUncaughtExceptionHandler() {
53 assertNull(Thread.getDefaultUncaughtExceptionHandler());
54 // failure due to SecurityException is OK.
55 // Would be nice to explicitly test both ways, but cannot yet.
56 Thread.UncaughtExceptionHandler defaultHandler
57 = Thread.getDefaultUncaughtExceptionHandler();
58 MyHandler eh = new MyHandler();
59 try {
60 Thread.setDefaultUncaughtExceptionHandler(eh);
61 try {
62 assertSame(eh, Thread.getDefaultUncaughtExceptionHandler());
63 } finally {
64 Thread.setDefaultUncaughtExceptionHandler(defaultHandler);
65 }
66 } catch (SecurityException ok) {
67 assertNotNull(System.getSecurityManager());
68 }
69 assertSame(defaultHandler, Thread.getDefaultUncaughtExceptionHandler());
70 }
71
72 // How to test actually using UEH within junit?
73
74 }