< 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 >