United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6986968 Crash on XIM server restart
JDK-6986968 : Crash on XIM server restart

Details
Type:
Bug
Submit Date:
2010-09-23
Status:
Closed
Updated Date:
2011-05-17
Project Name:
JDK
Resolved Date:
2011-05-17
Component:
client-libs
OS:
linux_redhat_5.0
Sub-Component:
java.awt:i18n
CPU:
x86
Priority:
P4
Resolution:
Fixed
Affected Versions:
OpenJDK6
Fixed Versions:

Related Reports

Sub Tasks

Description
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.

                                    

Comments
EVALUATION

The fix was pushed by the contributor:
http://hg.openjdk.java.net/jdk7/swing/jdk/rev/bbadb9484f53
                                     
2010-09-28



Hardware and Software, Engineered to Work Together