<AWT Dev> [9] Review Request: JDK-8042087 [macosx] LWCToolkit.inokeAndWait is calling EventQueue.invokeLater
Anthony Petrov
anthony.petrov at oracle.com
Tue Apr 29 17:37:59 UTC 2014
Hi Petr,
While the bug description and the solution sound reasonable, I'm still a
bit concerned about the presence of the if(component==null) branch in
the old code. I see that the code has been updated recently (with
lambdas and friends), and is aware of the app contexts thing. So someone
who wrote it, added that branch consciously. Or left it there from the
former version of the code that might not be aware of the app contexts
problems. In either case, w/o knowing why the branch is there in the
first place, it seems a bit scary to just chop it off.
Could you please investigate a bit more and provide some details so that
we could be sure this change doesn't cause any regressions?
--
best regards,
Anthony
On 4/29/2014 3:04 PM, Petr Pchelko wrote:
> Hello, Sergey.
>
>>> Hello, AWT Team.
>>>
>>> Please review the fix for the issue:
>>> https://bugs.openjdk.java.net/browse/JDK-8042087
>>> The fix is available at:
>>> http://cr.openjdk.java.net/~pchelko/9/8042087/webrev/
>>>
>>> The problem is that we are using EventQueue.invokeLater on the Toolkit thread.
>> I guess the fix changes getSystemEventQueueForInvokeAndWait().postEvent(), and EventQueue.invokeLater is used in another place of LWCToolkit in systemColorsChanged().
>>> In applet mode this would fail with NPE. So I've removed the non-working code branch, made general cleanup and added a null check for the component provided to invokeAndWait and invokeLater methods.
> Yes, I've called the bug incorrectly) It should be called "[macosx] LWCToolkit.inokeAndWait is relying on main AppContext".. Sorry for inaccuracy. I've renamed the issue.
>
> With best regards. Petr.
>
> On 29.04.2014, at 14:38, Sergey Bylokhov <Sergey.Bylokhov at oracle.com> wrote:
>
>> On 4/29/14 12:32 PM, Petr Pchelko wrote:
>>> Hello, AWT Team.
>>>
>>> Please review the fix for the issue:
>>> https://bugs.openjdk.java.net/browse/JDK-8042087
>>> The fix is available at:
>>> http://cr.openjdk.java.net/~pchelko/9/8042087/webrev/
>>>
>>> The problem is that we are using EventQueue.invokeLater on the Toolkit thread.
>> I guess the fix changes getSystemEventQueueForInvokeAndWait().postEvent(), and EventQueue.invokeLater is used in another place of LWCToolkit in systemColorsChanged().
>>> In applet mode this would fail with NPE. So I've removed the non-working code branch, made general cleanup and added a null check for the component provided to invokeAndWait and invokeLater methods.
>>> We don't have open bugs on Mac about NPE in applet mode, so most likely the removed branch was never executed. But with this fix we would catch possible errors early.
>>>
>>> With best regards. Petr.
>>
>>
>> --
>> Best regards, Sergey.
>>
>
More information about the awt-dev
mailing list