<Swing Dev> [9] Review request for 8046031: UI of Java Web Start app isn't updated when changing Windows theme
Semyon Sadetsky
semyon.sadetsky at oracle.com
Fri Apr 29 12:59:06 UTC 2016
Hi Artem,
Thank you for review.
I have added the comment to JIRA.
As for the test. Even if Toolkit.setDesktopProperty() were called using
reflection, it seems to me, such test wouldn't be indicative, because
even before the fix both contexts had a chance to be updated correctly.
The bug has stochastic nature and requires that the event scheduling on
both EDTs happens roughly at the same time. It's hard to make this
deterministic.
--Semyon
On 4/28/2016 6:04 PM, Artem Ananiev wrote:
> Hi, Semyon,
>
> On 4/21/16 4:22 PM, Semyon Sadetsky wrote:
>> Hello,
>>
>> Please review fix for JDK9:
>>
>> bug: https://bugs.openjdk.java.net/browse/JDK-8046031
>> webrev: http://cr.openjdk.java.net/~ssadetsky/8046031/webrev.00/
>>
>> Under the Windoew LnF when the native Windows theme is changed some java
>> frames remains unchanged if there are several application contexts. The
>> thing is the DesktopProperty#updatePending flag that prevents to run
>> more then one UI update operation is shared between different
>> applications contexts while they may be updated with the property change
>> concurrently from different EDT threads so they may loose the update.
>> To avoid this mutual interference the updatePending is moved from the
>> global to the application context scope.
>
> could you add this evaluation to bug comments, please? At a glance,
> the fix looked flawed to me, but then in email discussion you proved
> it's fine, so the details are worth adding to the bug. For example,
> it's far from trivial to understand, why updatePending is shared
> between different DefaultProperties (globally in VM before the fix,
> and within the current AppContext after the fix).
>
>> The test would require to write native code so the issue is labeled
>> noreg-hard.
>
> Does it really require native code? A test can create two app
> contexts, one desktop property, call its updateUI() in both EDTs, and
> check that it's executed twice.
>
> Thanks,
>
> Artem
>
>> --Semyon
More information about the swing-dev
mailing list