<AWT Dev> Review request for 8047288: [macosx] Endless loop in EDT on Mac

artem malinko artem.malinko at oracle.com
Thu Jul 24 11:37:44 UTC 2014


Call stack and sysout show that in case of applet Window.setVisible() is 
called from the main thread or from EDT thread. So I think toolkit 
thread won't call this method.

On 7/24/2014 2:02 PM, Anton V. Tarasov wrote:
> On 24.07.2014 13:48, artem malinko wrote:
>> Hi Anton.
>>
>> Sorry, didn't understand you well. Do you mean we should check(and 
>> test) that this method(isFocusableWindow()) is also called on EDT if 
>> we run applet?
>
> IMHO, it's enough to just make sure (via inspecting the sources) that 
> Window.setVisible() is called on EDT in case of an applet. That logic 
> is triggered on the plugin side.
>
> Anton.
>
>>
>> On 7/24/2014 11:42 AM, Anton V. Tarasov wrote:
>>> Hi Artem,
>>>
>>> I'm Ok with the fix, provided that LWWindowPeer.setVisibleImpl() is 
>>> called on EDT for applets (if I'm not mistaken). Otherwise, we still 
>>> have a client method (getTarget().isFocusableWindow()) called on the 
>>> toolkit thread, which is generally no good.
>>>
>>> Regards,
>>> Anton.
>>>
>>> On 24.07.2014 10:25, artem malinko wrote:
>>>> Thank you, Petr.
>>>>
>>>> Could anyone else review the fix, please?
>>>>
>>>> On 7/23/2014 10:30 PM, Petr Pchelko wrote:
>>>>> Hello, Artem.
>>>>>
>>>>> The new version (it’s .00 for some reason) looks good.
>>>>>
>>>>> With best regards. Petr.
>>>>>
>>>>>> On Jul 23, 2014, at 6:55 PM, artem malinko 
>>>>>> <artem.malinko at oracle.com <mailto:artem.malinko at oracle.com>> wrote:
>>>>>>
>>>>>> Hi, Petr. I ran focus regression tests and jck tests on awt. For 
>>>>>> fixed jdk results is the same. Except my new test, of course 
>>>>>> which is not passed on not fixed jdk:) And also I fixed issues in 
>>>>>> test. New webrev:
>>>>>> http://cr.openjdk.java.net/~bae/8047288/9/webrev.00/
>>>>>>
>>>>>> On 7/22/2014 8:23 PM, Petr Pchelko wrote:
>>>>>>> Hello, Artem.
>>>>>>>
>>>>>>> A couple of comments:
>>>>>>> 1. LWWindowPeer: 268 - please remove an empty line.
>>>>>>> 2. LWWIndowPeer. isTargetFocusable - the method is not needed at 
>>>>>>> all.
>>>>>>> 3. I’m concerned about the test. Do you really need the close 
>>>>>>> button?
>>>>>>> 4. frame and window variables are set from main thread and read 
>>>>>>> from EDT. They should be declared volatile.
>>>>>>>
>>>>>>> Also please run all focus regression and JCK tests, because this 
>>>>>>> area is very sensitive.
>>>>>>>
>>>>>>> With best regards. Petr.
>>>>>>>
>>>>>>>> On Jul 22, 2014, at 8:04 PM, artem malinko 
>>>>>>>> <artem.malinko at oracle.com <mailto:artem.malinko at oracle.com>> wrote:
>>>>>>>>
>>>>>>>> Hello, AWT Team.
>>>>>>>>
>>>>>>>> Please review a fix for the issue:
>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8047288
>>>>>>>> The fix is available at:
>>>>>>>> http://cr.openjdk.java.net/~mcherkas/artem/8047288/webrev.01/ 
>>>>>>>> <http://cr.openjdk.java.net/%7Emcherkas/artem/8047288/webrev.01/>
>>>>>>>>
>>>>>>>> Window.isFocusableWindow() could lead to deadlock if it is 
>>>>>>>> invoked on AppKit thread. Fix caches result of 
>>>>>>>> Window.isFocusableWindow() on a peer level and method is not 
>>>>>>>> invoked on AppkitThread.
>>>>>>>>
>>>>>>>> Thank you.
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20140724/0ceee770/attachment.html>


More information about the awt-dev mailing list