On 4/21/2016 10:46 PM, Sergey Bylokhov wrote:
Hi, Semyon.
As far as I understand from the bug description, the method DesktopProperty.updateUI() is called on the different EDT? Does it mean that we share the same DesktopProperty object across different Appcontext? (if not then probably we can skip the usage of Appcontext and change the field to non-static)?
No, we do not share the same DesktopProperty object, but it would be odd to expect that there is only one DesktopProperty per app context. Putting the flag into the app scope protects from scheduling events recursively
If the Appcontext is necessary, then we should not use interned string as a key, I suggest to use the simple new Object(), so it will not be accessible outside of this class.
This is a public field. Accessing it outside the class shouldn't be an issue.

--Semyon

On 21.04.16 16:56, Alexandr Scherbatiy wrote:

  The fix looks good to me.

  Thanks,
  Alexandr.

On 4/21/2016 6:22 AM, 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.
The test would require to write native code so the issue is labeled
noreg-hard.

--Semyon




Reply via email to