< prev index next >

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

Print this page

        

@@ -50,17 +50,28 @@
         this(INNOCUOUSTHREADGROUP, target,
              "InnocuousThread-" + threadNumber.getAndIncrement());
     }
 
     public InnocuousThread(Runnable target, String name) {
-        this(INNOCUOUSTHREADGROUP, target, 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 >