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.