--- old/src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c 2018-11-15 15:04:20.000000000 +0900 +++ new/src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c 2018-11-15 15:04:19.000000000 +0900 @@ -1277,9 +1277,14 @@ /* mark that XIM server was destroyed */ X11im = NULL; JNIEnv* env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); + + AWT_LOCK(); /* 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); + while (x11InputMethodGRefListHead != NULL) { + getX11InputMethodData(env, x11InputMethodGRefListHead->inputMethodGRef); + } + AWT_UNLOCK(); } JNIEXPORT jboolean JNICALL