Review of solution for Cancelled Tasks

Jim Graham james.graham at oracle.com
Thu Jan 5 15:52:58 PST 2012


On 1/5/2012 1:53 PM, Tom Eugelink wrote:
> I must admit that I've lost the discussion somewhere.
>
> But seeing the code above, with the if(isCancelled()) check to break the
> loop, I do not see any need to throw an exception. The Task, after
> returing from call(), can check itself for isCancelled() and call the
> cancelled() method in the EDT (or whatever) for update. So, why an
> exception?

If they are updating the progress, then they are likely unaware that 
their actions are inappropriate (though it could have been a race 
condition in that they might have called isCancelled() and then they got 
cancelled after it returned "false" and then they call update() only to 
be in the cancel condition).

It's roughly analogous to trying to read from a stream that has been 
closed.  It's no longer appropriate to be reading from it and so you get 
an exceptional return.

There is still the issue being discussed that in some cases it may be 
appropriate to update progress if the action has been canceled, though...

			...jim


More information about the openjfx-dev mailing list