On Thu, 16 Feb 2023 19:12:47 GMT, Alexey Ivanov <[email protected]> wrote:
>> src/java.desktop/share/classes/javax/swing/SwingWorker.java line 308:
>>
>>> 306: } finally {
>>> 307: doneEDT();
>>> 308: setState(StateValue.DONE);
>>
>> Can the test checks the case when the listener called from "setState" will
>> throw an exception, I think some of the previous iterations of the fix will
>> not work in this case.
>
>> Can the test checks the case when the listener called from "setState" will
>> throw an exception, I think some of the previous iterations of the fix will
>> not work in this case.
>
> This is not a new problem and _is not introduced_ by Prasanta's fix.
>
> I also found it while I was testing his changes and ran the test.
>
> If a listener throws an exception, all the following runnables which are
> already accumulated in `AccumulativeRunnable` are not run.
>
> I have already written a test for this case and I will submit a bug. It must
> not be included here.
I think the previous iteration of the fix was not run the doneEDT if the
setState throws an exception, while the current version, and initial code
always run it.
-------------
PR: https://git.openjdk.org/jdk/pull/11940