6986968: Crash on XIM server restart
Summary: Free XIM data structures on DestroyXIMCallback
Reviewed-by: naoto
--- a/jdk/src/solaris/native/sun/awt/awt_InputMethod.c Mon Sep 27 13:38:49 2010 +0400
+++ b/jdk/src/solaris/native/sun/awt/awt_InputMethod.c Mon Sep 27 11:30:03 2010 -0400
@@ -1473,6 +1473,10 @@
static void DestroyXIMCallback(XIM im, XPointer client_data, XPointer call_data) {
/* mark that XIM server was destroyed */
X11im = NULL;
+ JNIEnv* env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
+ /* free the old pX11IMData and set it to null. this also avoids crashing
+ * the jvm if the XIM server reappears */
+ X11InputMethodData *pX11IMData = getX11InputMethodData(env, currentX11InputMethodInstance);
}
/*