Missing clarity in TimerTask doc

Martin Buchholz martinrb at google.com
Mon Sep 15 22:47:28 UTC 2014


On Mon, Sep 15, 2014 at 3:11 PM, Ulf Zibis <Ulf.Zibis at cosoco.de> wrote:

>
> Am 15.09.2014 um 22:39 schrieb Martin Buchholz:
>
>> http://docs.oracle.com/javase/8/docs/api/java/util/Timer.
>> html#schedule-java.util.TimerTask-long-
>>
>> IllegalStateException - if task was already scheduled or cancelled, timer
>> was cancelled, or timer thread terminated.
>>
>
> Oops, overseen, thanks!
>
> Maybe it could be extentend to:
> IllegalStateException - if task was already scheduled, cancelled or
> already done, timer was cancelled, or timer thread terminated.
> ... as I assume a TimerTask instance is never reusable.
>

It's already "technically correct" - if it was already done, then it was
already scheduled!


>
> Is there a reason why a TimerTask is not reset for reuse when cancelled or
> already done?


It's a reasonable question.  Like Futures, it's a lot easier to reason
about tasks when they atomically transition to a done state at most once.
 But e.g. FutureTask has runAndReset.



More information about the core-libs-dev mailing list