<AWT Dev> [9] Review Request: 8138764 In some cases the usage of TreeLock can be replaced by other synchronization
Alexander Scherbatiy
alexandr.scherbatiy at oracle.com
Wed Oct 21 14:13:49 UTC 2015
The fix looks good to me.
Thanks,
Alexandr.
On 10/19/2015 12:37 AM, Sergey Bylokhov wrote:
> On 16.10.15 13:56, Alexander Scherbatiy wrote:
>> On 10/6/2015 5:09 PM, Sergey Bylokhov wrote:
>>> Hello.
>>> Please review the fix for jdk9, I plan to backport it to jdk8.
>>>
>>> In this fix some of synchronizations on TreeLock were removed.
>>>
>>> - Component.java(CachedPainter.java) : long time ago this
>>> synchronization was necessary, because the getGC method iterated over
>>> hierarchy of components[1], but now it simple getter.
>>> - Window.java : locationByPlatform and opacity are changed to volatile
>>> and an additional synchronization is removed.
>>
>> CachedPainter.java: Can the component hierarchy be changed from
>> another thread during the paint0(component, ...) call?
>
> Yes it can be changed in any moment, in this case it will work in the
> same way as JComponent.paintComponent() or other places where we draw
> something to the component or backbuffer.
>
> This synchronization was added as a part of JDK-6190373. It has a
> deadlock description which was solved. In those moment it cannot be
> solved in different way because TreeLock was needed in Component.getGC().
>
> I will provide the webrev and review of those bug in another email.
>
>
>>
>> Thanks,
>> Alexandr.
>>>
>>> These changes are subset of my fix for JDK-6765536, which is safe to
>>> backport to jdk8.
>>>
>>> [1]
>>> http://hg.openjdk.java.net/jdk6/jdk6/jdk/diff/e7ecde4010e9/src/share/classes/java/awt/Component.java
>>>
>>>
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8138764
>>> Webrev can be found at:
>>> http://cr.openjdk.java.net/~serb/8138764/webrev.00
>>>
>>
>
>
More information about the awt-dev
mailing list