<AWT Dev> [10] Review request for 8186495: Some closed SQE tests fail after frame dispose() on Linux

Semyon Sadetsky semyon.sadetsky at oracle.com
Wed Sep 13 20:19:10 UTC 2017


On 09/13/2017 12:30 PM, Sergey Bylokhov wrote:

> On 9/13/17 12:19, Semyon Sadetsky wrote:
>> Obviously those peers was not developed with the multi-threaded 
>> access kept in mind.
>
> It is not obviously since it should be thread safe, and it is already 
> used minimum from 3 threads main/edt/toolkit.
Can you provide examples where dispose() and setVisible() is called 
simultaneously from different threads in JDK code?
Making Linux peers thread-safe would be too big change that may 
introduce deadlocks. We don't need to make situation even worse than it 
is now.

--Semyon
>
>>
>> --Semyon
>>
>>
>> On 09/13/2017 11:55 AM, Sergey Bylokhov wrote:
>>> On 9/13/17 11:49, Semyon Sadetsky wrote:
>>>> The tests passes after the fix for me. Which situations do you 
>>>> mean? Can you provide examples?
>>>
>>> For example in XFramePeer.setVisible() it is possible that the peer 
>>> became disposed after the new check.
>>>
>>>>
>>>> --Semyon
>>>>
>>>>
>>>> On 09/11/2017 03:20 PM, Sergey Bylokhov wrote:
>>>>> Hi, Semyon.
>>>>> Did you check why the bug is not reproduced on jdk8?
>>>>> I guess that it is still possible to get a situations below 
>>>>> because of absent synchronization on all paths of usage 
>>>>> "window",isDispose() and dispose() method:
>>>>>  - check isDispose().
>>>>>  - dispose the peer
>>>>>  - use the long value which was disposed step above
>>>>>
>>>>>
>>>>> On 9/8/17 20:00, Semyon Sadetsky wrote:
>>>>>> Hello,
>>>>>>
>>>>>> Please review fix for JDK10:
>>>>>>
>>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8186495
>>>>>>
>>>>>> webrev: http://cr.openjdk.java.net/~ssadetsky/8186495/webrev.00/
>>>>>>
>>>>>> After toolkit window is destroyed methods invocations on the 
>>>>>> window component may cause exceptions because of wrong native 
>>>>>> xwindow ID. The fix introduces checks in the X* peers to ensure 
>>>>>> that window ID is actual otherwise do nothing.
>>>>>>
>>>>>> --Semyon
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
>



More information about the awt-dev mailing list