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.

Reply via email to