This content has been marked as final. Show 6 replies
as a side note, if you are looking for feedback, while i agree that this is definitely a change in behavior (taking your word for it, never used that method call myself), i would argue that the old behavior is the buggy behavior. from the Executor's standpoint, i would consider any tasks which are not currently running to be considered "complete", regardless of whether they ended in an Exception or not. whether or not a task is successfully complete is up to your code. if you want to track what you consider to be successful completions versus total completions then you should be handling that separately.
I understand that these forums are not for reporting bugs, but it seemed rash to raise a bug without first discussing whether or not others considered the behaviour to be a bug. I work on an open source project and it's certainly good form there to discuss issues on the forum before raising a bug as in many cases there isn't a bug at all.
Anyway, you may be right that this is a bug in Java 6. I think it's unlikely to be fixed if I raise it, so I'd like to get the change of behaviour documented in the Java 7 compatibility notes (linked to above). How do I do that? Should I raise a bug or is there another route? Thanks.
947532 wrote:That is a VERY good question. I know of no official way of reporting problems with documentation. However I have two suggestions.
so I'd like to get the change of behaviour documented in the Java 7 compatibility notes (linked to above). How do I do that?
- there is the 'documentation' forum: Documentation
- there are the OpenJDK mailing lists
EDIT: reading through the documentation forum, that seems to be a very effective way to get documentation mistakes fixed.
To get something changed in documentation just file a bug against the documentation, just as you would the code. You can file it against the code to which the change relates.
This was a functional bug in 6 - 6450207. The notion of Task completion matches the semantics of Futures where completion is indicated by isDone() and signifies normal completion, exceptional completion or cancellation. This is also indicated elsewhere in the TPE docs eg see afterExecute.
The question of whether this fix then warrants an entry in the compatibility notes is a tricky one. Naturally if this bug has surprised you, you see the change as an incompatibility and would like to see it documented. For others this is just a bug like a dozen others and they don't all need to be documented. I'm in the latter camp but sympathetic to the former. :) I will see how painful it is to make such changes.