1895 |
|
try { |
1896 |
|
for (long timeout = timeoutMillis();;) { |
1897 |
|
List<Callable<String>> tasks = new ArrayList<>(); |
1898 |
< |
tasks.add(new StringTask()); |
1898 |
> |
tasks.add(new StringTask("0")); |
1899 |
|
tasks.add(Executors.callable(new LongPossiblyInterruptedRunnable(), TEST_STRING)); |
1900 |
< |
tasks.add(new StringTask()); |
1900 |
> |
tasks.add(new StringTask("2")); |
1901 |
|
long startTime = System.nanoTime(); |
1902 |
|
List<Future<String>> futures = |
1903 |
|
e.invokeAll(tasks, timeout, MILLISECONDS); |
1907 |
|
assertTrue(future.isDone()); |
1908 |
|
assertTrue(futures.get(1).isCancelled()); |
1909 |
|
try { |
1910 |
< |
assertEquals(TEST_STRING, futures.get(0).get()); |
1911 |
< |
assertEquals(TEST_STRING, futures.get(2).get()); |
1910 |
> |
assertEquals("0", futures.get(0).get()); |
1911 |
> |
assertEquals("2", futures.get(2).get()); |
1912 |
|
break; |
1913 |
|
} catch (CancellationException retryWithLongerTimeout) { |
1914 |
|
timeout *= 2; |