<AWT Dev> [9] Review request for 8048289 Gtk: call to UIManager.getSystemLookAndFeelClassName() leads to crash

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Thu Jul 17 16:16:50 UTC 2014


Hi, Alexander.
Then the fix looks fine. Thanks!

On 7/17/14 7:02 PM, Alexander Zvegintsev wrote:
> Hi Sergey,
> You are right: UNIXToolkit.unload_gtk() is never called. But it will 
> not crash if we call it, somehow gtk-init-check()[1] call allows to 
> avoid crash.
> However I want to leave this fix as simple as it is now, since 
> gdk_threads_init()[2] should be called prior to gtk_init_check(),
> and it is unnecessaryfor a simple version check.
>
> [1] 
> https://developer.gnome.org/gtk2/stable/gtk2-General.html#gtk-init-check
> [2] 
> https://developer.gnome.org/gdk2/stable/gdk2-Threads.html#gdk-threads-init
> --
> Thanks,
> Alexander.
> On 07/17/2014 04:15 PM, Sergey Bylokhov wrote:
>> Hi, Alexander.
>> As far as I remember, we have a code, which closes this lib for the 
>> usual usage of gtk look and feel. Looks like we never call it, but if 
>> we call it it will cause the same crash? Can you investigate that? 
>> Thanks.
>>
>> On 7/16/14 8:56 PM, Alexander Zvegintsev wrote:
>>> Hello AWT team,
>>>
>>> please review the fix
>>> http://cr.openjdk.java.net/~azvegint/jdk/9/8048289/00/
>>> for the issue
>>> https://bugs.openjdk.java.net/browse/JDK-8048289
>>>
>>> UIManager.getSystemLookAndFeelClassName() calls 
>>> UNIXToolkit.isNativeGTKAvailable()
>>> which loads gtk library, checks version, and closes library. Thread 
>>> specific data key is created upon gtk dlopen,
>>> but this key is not deleted at dlclose. This produces a crash at 
>>> thread termination.
>>>
>>> So this fix is a workaround for the glib issue [1], it simply 
>>> doesn't close library.
>>> Simple case to reproduce this issue written on C is attached to [1].
>>>
>>> [1] https://bugzilla.gnome.org/show_bug.cgi?id=733065
>>>
>>
>>
>


-- 
Best regards, Sergey.

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


More information about the awt-dev mailing list