On Tue, 31 Jan 2023 08:50:19 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> wrote:
>> It seems the isDone method modification is causing a JCK test to fail and >> there's no spec for it to challenge JCK test, although logically it seems >> right that STATE should be DONE but for now, I have modified the fix which >> satisfies regression test and JCK both.. > > isDone() spec mention `"Completion may be due to normal termination, an > exception, or cancellation -- in all of these cases, this method will return > true"` > so for cancel state also, the state needs to be in DONE state, in which case > we can reinstate the DONE state check in isDone() `isDone()` spec is inherited from `Future.isDone()` and it is true for how `FutureTask` is implemented. https://github.com/openjdk/jdk/blob/810c8a271b4524ae776e2306ef699e04a7d145a2/src/java.desktop/share/classes/javax/swing/SwingWorker.java#L565-L570 Can't we change it? Given what is said in the spec for `SwingWorker` before, I assume `isDone` should return `true` when the status of `SwingWorker` moves to `DONE` and it should occur when `doInBackground` returns as this is defined in the spec: https://github.com/openjdk/jdk/blob/810c8a271b4524ae776e2306ef699e04a7d145a2/src/java.desktop/share/classes/javax/swing/SwingWorker.java#L288-L293 ------------- PR: https://git.openjdk.org/jdk/pull/11940