10 |
|
import junit.framework.*; |
11 |
|
import java.util.*; |
12 |
|
import java.util.concurrent.*; |
13 |
+ |
import static java.util.concurrent.TimeUnit.MILLISECONDS; |
14 |
|
import java.math.BigInteger; |
15 |
|
import java.security.*; |
16 |
|
|
36 |
|
public T call() throws Exception { |
37 |
|
Future<T> ftask = exec.submit(func); |
38 |
|
try { |
39 |
< |
return ftask.get(msecs, TimeUnit.MILLISECONDS); |
39 |
> |
return ftask.get(msecs, MILLISECONDS); |
40 |
|
} finally { |
41 |
|
ftask.cancel(true); |
42 |
|
} |
223 |
|
public void testNewSingleThreadScheduledExecutor() throws Exception { |
224 |
|
TrackedCallable callable = new TrackedCallable(); |
225 |
|
ScheduledExecutorService p1 = Executors.newSingleThreadScheduledExecutor(); |
226 |
< |
Future f = p1.schedule(callable, SHORT_DELAY_MS, TimeUnit.MILLISECONDS); |
226 |
> |
Future f = p1.schedule(callable, SHORT_DELAY_MS, MILLISECONDS); |
227 |
|
assertFalse(callable.done); |
228 |
|
Thread.sleep(MEDIUM_DELAY_MS); |
229 |
|
assertTrue(callable.done); |
237 |
|
public void testnewScheduledThreadPool() throws Exception { |
238 |
|
TrackedCallable callable = new TrackedCallable(); |
239 |
|
ScheduledExecutorService p1 = Executors.newScheduledThreadPool(2); |
240 |
< |
Future f = p1.schedule(callable, SHORT_DELAY_MS, TimeUnit.MILLISECONDS); |
240 |
> |
Future f = p1.schedule(callable, SHORT_DELAY_MS, MILLISECONDS); |
241 |
|
assertFalse(callable.done); |
242 |
|
Thread.sleep(MEDIUM_DELAY_MS); |
243 |
|
assertTrue(callable.done); |
251 |
|
public void testunconfigurableScheduledExecutorService() throws Exception { |
252 |
|
TrackedCallable callable = new TrackedCallable(); |
253 |
|
ScheduledExecutorService p1 = Executors.unconfigurableScheduledExecutorService(Executors.newScheduledThreadPool(2)); |
254 |
< |
Future f = p1.schedule(callable, SHORT_DELAY_MS, TimeUnit.MILLISECONDS); |
254 |
> |
Future f = p1.schedule(callable, SHORT_DELAY_MS, MILLISECONDS); |
255 |
|
assertFalse(callable.done); |
256 |
|
Thread.sleep(MEDIUM_DELAY_MS); |
257 |
|
assertTrue(callable.done); |
305 |
|
final ThreadGroup egroup = Thread.currentThread().getThreadGroup(); |
306 |
|
Runnable r = new Runnable() { |
307 |
|
public void run() { |
308 |
< |
try { |
309 |
< |
Thread current = Thread.currentThread(); |
310 |
< |
threadAssertTrue(!current.isDaemon()); |
311 |
< |
threadAssertTrue(current.getPriority() <= Thread.NORM_PRIORITY); |
312 |
< |
ThreadGroup g = current.getThreadGroup(); |
313 |
< |
SecurityManager s = System.getSecurityManager(); |
314 |
< |
if (s != null) |
315 |
< |
threadAssertTrue(g == s.getThreadGroup()); |
316 |
< |
else |
317 |
< |
threadAssertTrue(g == egroup); |
318 |
< |
String name = current.getName(); |
319 |
< |
threadAssertTrue(name.endsWith("thread-1")); |
320 |
< |
} catch (SecurityException ok) { |
321 |
< |
// Also pass if not allowed to change setting |
322 |
< |
} |
308 |
> |
try { |
309 |
> |
Thread current = Thread.currentThread(); |
310 |
> |
threadAssertTrue(!current.isDaemon()); |
311 |
> |
threadAssertTrue(current.getPriority() <= Thread.NORM_PRIORITY); |
312 |
> |
ThreadGroup g = current.getThreadGroup(); |
313 |
> |
SecurityManager s = System.getSecurityManager(); |
314 |
> |
if (s != null) |
315 |
> |
threadAssertTrue(g == s.getThreadGroup()); |
316 |
> |
else |
317 |
> |
threadAssertTrue(g == egroup); |
318 |
> |
String name = current.getName(); |
319 |
> |
threadAssertTrue(name.endsWith("thread-1")); |
320 |
> |
} catch (SecurityException ok) { |
321 |
> |
// Also pass if not allowed to change setting |
322 |
> |
} |
323 |
|
} |
324 |
|
}; |
325 |
|
ExecutorService e = Executors.newSingleThreadExecutor(Executors.defaultThreadFactory()); |
358 |
|
final AccessControlContext thisacc = AccessController.getContext(); |
359 |
|
Runnable r = new Runnable() { |
360 |
|
public void run() { |
361 |
< |
try { |
362 |
< |
Thread current = Thread.currentThread(); |
363 |
< |
threadAssertTrue(!current.isDaemon()); |
364 |
< |
threadAssertTrue(current.getPriority() <= Thread.NORM_PRIORITY); |
365 |
< |
ThreadGroup g = current.getThreadGroup(); |
366 |
< |
SecurityManager s = System.getSecurityManager(); |
367 |
< |
if (s != null) |
368 |
< |
threadAssertTrue(g == s.getThreadGroup()); |
369 |
< |
else |
370 |
< |
threadAssertTrue(g == egroup); |
371 |
< |
String name = current.getName(); |
372 |
< |
threadAssertTrue(name.endsWith("thread-1")); |
373 |
< |
threadAssertTrue(thisccl == current.getContextClassLoader()); |
374 |
< |
threadAssertTrue(thisacc.equals(AccessController.getContext())); |
375 |
< |
} catch (SecurityException ok) { |
376 |
< |
// Also pass if not allowed to change settings |
377 |
< |
} |
361 |
> |
try { |
362 |
> |
Thread current = Thread.currentThread(); |
363 |
> |
threadAssertTrue(!current.isDaemon()); |
364 |
> |
threadAssertTrue(current.getPriority() <= Thread.NORM_PRIORITY); |
365 |
> |
ThreadGroup g = current.getThreadGroup(); |
366 |
> |
SecurityManager s = System.getSecurityManager(); |
367 |
> |
if (s != null) |
368 |
> |
threadAssertTrue(g == s.getThreadGroup()); |
369 |
> |
else |
370 |
> |
threadAssertTrue(g == egroup); |
371 |
> |
String name = current.getName(); |
372 |
> |
threadAssertTrue(name.endsWith("thread-1")); |
373 |
> |
threadAssertTrue(thisccl == current.getContextClassLoader()); |
374 |
> |
threadAssertTrue(thisacc.equals(AccessController.getContext())); |
375 |
> |
} catch (SecurityException ok) { |
376 |
> |
// Also pass if not allowed to change settings |
377 |
> |
} |
378 |
|
} |
379 |
|
}; |
380 |
|
ExecutorService e = Executors.newSingleThreadExecutor(Executors.privilegedThreadFactory()); |
414 |
|
* privilegedCallableUsingCurrentClassLoader throws ACE |
415 |
|
*/ |
416 |
|
public void testCreatePrivilegedCallableUsingCCLWithNoPrivs() { |
417 |
< |
Policy savedPolicy = null; |
417 |
> |
Policy savedPolicy = null; |
418 |
|
try { |
419 |
|
savedPolicy = Policy.getPolicy(); |
420 |
|
AdjustablePolicy policy = new AdjustablePolicy(); |
446 |
|
* privilegedCallableUsingCurrentClassLoader does not throw ACE |
447 |
|
*/ |
448 |
|
public void testprivilegedCallableUsingCCLWithPrivs() throws Exception { |
449 |
< |
Policy savedPolicy = null; |
449 |
> |
Policy savedPolicy = null; |
450 |
|
try { |
451 |
|
savedPolicy = Policy.getPolicy(); |
452 |
|
AdjustablePolicy policy = new AdjustablePolicy(); |
507 |
|
* With permissions, calling privilegedCallable succeeds |
508 |
|
*/ |
509 |
|
public void testprivilegedCallableWithPrivs() throws Exception { |
510 |
< |
Policy savedPolicy = null; |
510 |
> |
Policy savedPolicy = null; |
511 |
|
try { |
512 |
|
savedPolicy = Policy.getPolicy(); |
513 |
|
AdjustablePolicy policy = new AdjustablePolicy(); |