1201 |
|
e.invokeAny(l); |
1202 |
|
shouldThrow(); |
1203 |
|
} catch (ExecutionException success) { |
1204 |
+ |
assertTrue(success.getCause() instanceof NullPointerException); |
1205 |
|
} finally { |
1206 |
|
joinPool(e); |
1207 |
|
} |
1354 |
|
* timed invokeAny(c) throws NPE if c has null elements |
1355 |
|
*/ |
1356 |
|
public void testTimedInvokeAny3() throws Exception { |
1357 |
+ |
final CountDownLatch latch = new CountDownLatch(1); |
1358 |
|
ExecutorService e = new CustomTPE(2, 2, LONG_DELAY_MS, MILLISECONDS, new ArrayBlockingQueue<Runnable>(10)); |
1359 |
|
try { |
1360 |
|
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>(); |
1361 |
< |
l.add(new StringTask()); |
1361 |
> |
l.add(new Callable<String>() { |
1362 |
> |
public String call() { |
1363 |
> |
try { |
1364 |
> |
latch.await(); |
1365 |
> |
} catch (InterruptedException ok) {} |
1366 |
> |
return TEST_STRING; |
1367 |
> |
}}); |
1368 |
|
l.add(null); |
1369 |
|
e.invokeAny(l, MEDIUM_DELAY_MS, MILLISECONDS); |
1370 |
|
shouldThrow(); |
1371 |
|
} catch (NullPointerException success) { |
1372 |
|
} finally { |
1373 |
+ |
latch.countDown(); |
1374 |
|
joinPool(e); |
1375 |
|
} |
1376 |
|
} |
1386 |
|
e.invokeAny(l, MEDIUM_DELAY_MS, MILLISECONDS); |
1387 |
|
shouldThrow(); |
1388 |
|
} catch (ExecutionException success) { |
1389 |
+ |
assertTrue(success.getCause() instanceof NullPointerException); |
1390 |
|
} finally { |
1391 |
|
joinPool(e); |
1392 |
|
} |