< prev index next >

src/java.base/share/classes/jdk/internal/misc/InnocuousThread.java

Print this page

        

*** 50,66 **** this(INNOCUOUSTHREADGROUP, target, "InnocuousThread-" + threadNumber.getAndIncrement()); } public InnocuousThread(Runnable target, String name) { ! this(INNOCUOUSTHREADGROUP, target, name); } public InnocuousThread(ThreadGroup group, Runnable target, String name) { super(group, target, name, 0L, false); UNSAFE.putOrderedObject(this, INHERITEDACCESSCONTROLCONTEXT, ACC); UNSAFE.putOrderedObject(this, CONTEXTCLASSLOADER, ClassLoader.getSystemClassLoader()); } @Override public void setUncaughtExceptionHandler(UncaughtExceptionHandler x) { // silently fail --- 50,77 ---- this(INNOCUOUSTHREADGROUP, target, "InnocuousThread-" + threadNumber.getAndIncrement()); } public InnocuousThread(Runnable target, String name) { ! this(INNOCUOUSTHREADGROUP, target, name, true); ! } ! ! public InnocuousThread(Runnable target, String name, boolean hasTCCL) { ! this(INNOCUOUSTHREADGROUP, target, name, hasTCCL); } public InnocuousThread(ThreadGroup group, Runnable target, String name) { + this(group, target, name, true); + } + + public InnocuousThread(ThreadGroup group, Runnable target, String name, boolean hasTCCL) { super(group, target, name, 0L, false); UNSAFE.putOrderedObject(this, INHERITEDACCESSCONTROLCONTEXT, ACC); + if (hasTCCL) UNSAFE.putOrderedObject(this, CONTEXTCLASSLOADER, ClassLoader.getSystemClassLoader()); + else + UNSAFE.putOrderedObject(this, CONTEXTCLASSLOADER, null); } @Override public void setUncaughtExceptionHandler(UncaughtExceptionHandler x) { // silently fail
< prev index next >