Long story short: I have a collection of Future
objects. Some of them are already in progress, some are not. I iterate the collection and call future.cancel(false)
which, according to the documentation, should cancel all Future
s that are not currently running but should allow all the others to complete.
My question is: How do I know when a particular Future
is completed after I have called future.cancel(false)
? future.isDone()
always returns true
because cancel()
was indeed called before that and future.get()
always throws a CancellationException
even though the Future
is still running.
Any suggestions?