RFR: 8081474: SwingWorker calls 'done' before the 'doInBackground' is finished [v12]
Alexey Ivanov
aivanov at openjdk.org
Fri Feb 3 13:57:57 UTC 2023
On Fri, 3 Feb 2023 07:27:39 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
>> SwingWorker done() method [spec ](https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/javax/swing/SwingWorker.java#L452) says "Executed on the Event Dispatch Thread after the doInBackground method is finished"
>> but there's no mechanism in place to honor that claim.
>> The [spec](https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/javax/swing/SwingWorker.java#L289)
>> also says the state should be DONE after doInBackground() returns which is also not done.
>>
>> Modified the code to honour the specification.
>
> Prasanta Sadhukhan has updated the pull request incrementally with one additional commit since the last revision:
>
> jcheck fix
Yeah, I totally agree. It makes more sense to me this way. But it requires a CSR.
> ```
> * {@code state} property change to {@code StateValue.STARTED}. After the
> + * {@code doInBackground} method is finished, ~~then~~
> + * {@code SwingWorker} notifies any {@code PropertyChangeListeners}
> + * about the {@code state} property change to {@code StateValue.DONE}, then {@code done} method is
> + * executed.
> ```
Remove the first *‘then’*. Maybe re-flow the text. Other than that, it looks good and it's consistent to the spec of `DONE`.
-------------
PR: https://git.openjdk.org/jdk/pull/11940
More information about the client-libs-dev
mailing list