37 |
|
assertEquals(1, pf.doneCount()); |
38 |
|
assertFalse(pf.runAndReset()); |
39 |
|
assertEquals(1, pf.doneCount()); |
40 |
+ |
Object r = null; Object exInfo = null; |
41 |
+ |
try { |
42 |
+ |
r = f.get(); |
43 |
+ |
} catch (CancellationException t) { |
44 |
+ |
exInfo = CancellationException.class; |
45 |
+ |
} catch (ExecutionException t) { |
46 |
+ |
exInfo = t.getCause(); |
47 |
+ |
} catch (Throwable t) { |
48 |
+ |
threadUnexpectedException(t); |
49 |
+ |
} |
50 |
|
|
51 |
|
// Check that run and runAndReset have no effect. |
52 |
|
int savedRunCount = pf.runCount(); |
43 |
– |
int savedSetCount = pf.setCount(); |
44 |
– |
int savedSetExceptionCount = pf.setExceptionCount(); |
53 |
|
pf.run(); |
54 |
|
pf.runAndReset(); |
55 |
|
assertEquals(savedRunCount, pf.runCount()); |
56 |
< |
assertEquals(savedSetCount, pf.setCount()); |
57 |
< |
assertEquals(savedSetExceptionCount, pf.setExceptionCount()); |
56 |
> |
try { |
57 |
> |
assertSame(r, f.get()); |
58 |
> |
} catch (CancellationException t) { |
59 |
> |
assertSame(exInfo, CancellationException.class); |
60 |
> |
} catch (ExecutionException t) { |
61 |
> |
assertSame(exInfo, t.getCause()); |
62 |
> |
} catch (Throwable t) { |
63 |
> |
threadUnexpectedException(t); |
64 |
> |
} |
65 |
|
assertTrue(f.isDone()); |
66 |
|
} |
67 |
|
} |
83 |
|
FutureTask ft = (FutureTask<?>) f; |
84 |
|
// Check that run methods do nothing |
85 |
|
ft.run(); |
86 |
< |
if (f instanceof PublicFutureTask) |
87 |
< |
assertFalse(((PublicFutureTask) f).runAndReset()); |
86 |
> |
if (f instanceof PublicFutureTask) { |
87 |
> |
PublicFutureTask pf = (PublicFutureTask) f; |
88 |
> |
int savedRunCount = pf.runCount(); |
89 |
> |
pf.run(); |
90 |
> |
assertFalse(pf.runAndReset()); |
91 |
> |
assertEquals(savedRunCount, pf.runCount()); |
92 |
> |
} |
93 |
|
checkNotDone(f); |
94 |
|
} |
95 |
|
} |