156 |
|
static final class InnocuousForkJoinWorkerThread extends ForkJoinWorkerThread { |
157 |
|
/** The ThreadGroup for all InnocuousForkJoinWorkerThreads */ |
158 |
|
private static final ThreadGroup innocuousThreadGroup = |
159 |
< |
ThreadLocalRandom.createThreadGroup("InnocuousForkJoinWorkerThreadGroup"); |
159 |
> |
java.security.AccessController.doPrivileged( |
160 |
> |
new java.security.PrivilegedAction<>() { |
161 |
> |
public ThreadGroup run() { |
162 |
> |
ThreadGroup group = Thread.currentThread().getThreadGroup(); |
163 |
> |
for (ThreadGroup p; (p = group.getParent()) != null; ) |
164 |
> |
group = p; |
165 |
> |
return new ThreadGroup(group, "InnocuousForkJoinWorkerThreadGroup"); |
166 |
> |
}}); |
167 |
|
|
168 |
|
/** An AccessControlContext supporting no privileges */ |
169 |
|
private static final AccessControlContext INNOCUOUS_ACC = |
193 |
|
public void setContextClassLoader(ClassLoader cl) { |
194 |
|
throw new SecurityException("setContextClassLoader"); |
195 |
|
} |
189 |
– |
|
196 |
|
} |
197 |
|
} |