Hi Alan, >Is this a Future implementation that doesn't implement the spec >correctly? The get method shouldn't throw CancellationException if done >and not-cancelled.
What you say makes sense. I should have checked this before I brought it up but CancellationException is an IllegalStateException so even if it did throw CE it is compliant with the docs. >The intention is that ISE means a coding error. The usage of these >methods should be very close to the test for the state so I think it's >right as it is. If you set the cause then it be caught and used like a >CompletionException. Bugs sometimes cause other bugs and dropping the chain can hide that information about a root problem. I understand the reluctance to add the cause. Thanks! Jason