<AWT Dev> [10] Review request for 8186495: Some closed SQE tests fail after frame dispose() on Linux
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Wed Sep 13 22:08:57 UTC 2017
On 9/13/17 13:19, Semyon Sadetsky wrote:
>> 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.
It should be already thread safe, there were even your fixes when the
synchronization in the peers was reworked:
http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/500fb73e193f
The problem in the fix is that the new checks do not try to be thread safe.
>
> --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
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>
--
Best regards, Sergey.
More information about the awt-dev
mailing list