<i18n dev> Request for review: Crash on XIM server restart

Naoto Sato naoto.sato at oracle.com
Thu Sep 16 14:18:06 PDT 2010


Hi Omair,

Thank you for catching the error. I think your fix is fine but would 
like some comments noting that the extra call to getX11InputMethodData() 
in DestroyXIMCallback is merely to free up the pX11IMData, otherwise, 
the call is kind of cryptic.

Thanks,
Naoto

(9/16/10 12:58 PM), Omair Majid wrote:
> Hi,
>
> While looking at the bug filed at
> https://bugzilla.redhat.com/show_bug.cgi?id=572147, I noticed that Java
> applications crash if IBus (an X input server) is restarted.
>
> The webrev is at
> http://cr.openjdk.java.net/~omajid/webrevs/crash-on-xim-server-restart/webrev.00/
>
>
> The code in awt_InputMethod.c guards against the XIM server going away,
> but does not guard against it appearing again. When the XIM server is
> restarted, the X server can send async requests to call OpenXIMCallback
> in Java automatically:
> (gdb) bt
> #0 OpenXIMCallback (display=<value optimized out>,
> client_data=<value optimized out>, call_data=<value optimized out>)
> at ../../../src/solaris/native/sun/awt/awt_InputMethod.c:1464
> #1 0x00000036b406dc4f in _XimFilterPropertyNotify (display=0x7f503c0df300,
> window=<value optimized out>, event=<value optimized out>,
> client_data=<value optimized out>) at imInsClbk.c:126
> #2 0x00007f4ff24f0f3f in Java_sun_awt_X11_XlibWrapper_XFilterEvent (
> env=<value optimized out>, clazz=<value optimized out>,
> ptr=<value optimized out>, window=<value optimized out>)
> at ../../../src/solaris/native/sun/xawt/XlibWrapper.c:486
> #3 0x00007f5039010f50 in ?? ()
> #4 0x00007f5039005953 in ?? ()
> #5 0x0000000000000000 in ?? ()
>
> This causes the X11im pointer to get initialized and the checks in
> getX11InputMethodData are escaped. The patch simply makes sure that the
> checks are not escaped by calling getX11InputMethodData in
> DestroyXIMCallback.
>
> Any thoughts or comments?
>
> Cheers,
> Omair



More information about the i18n-dev mailing list