Hi all, Here is an updated webrev: http://cr.openjdk.java.net/~clanger/webrevs/8201429.2/ Can someone from the graphics/awt team please have a look at that change? Especially checking that we don't break non-AIX platforms? Thanks in advance.
@Ichiroh: Thanks for your review and tests. Adressing your points: > resetCompositionState() was missing in > src/java.desktop/aix/classes/sun/awt/X11InputMethod.java > ========================================================== > == > --- a/src/java.desktop/aix/classes/sun/awt/X11InputMethod.java Wed May > 09 09:05:32 2018 +0900 > +++ b/src/java.desktop/aix/classes/sun/awt/X11InputMethod.java Mon > May > 14 21:25:50 2018 +0900 > @@ -56,6 +56,21 @@ > } > > /** > + * Reset the composition state to the current composition state. > + */ > + protected void resetCompositionState() { > + if (compositionEnableSupported && haveActiveClient()) { > + try { > + /* Restore the composition mode to the last saved > composition > + mode. */ > + setCompositionEnabled(savedCompositionState); > + } catch (UnsupportedOperationException e) { > + compositionEnableSupported = false; > + } > + } > + } > + > + /** > * Activate input method. > */ > public synchronized void activate() { > ========================================================== Good catch. I've incorporated that in my new webrev. > Otherwise, > we could not find out any functional difference on Linux. > we could not find out any functional difference between our modified code and > your code on AIX. > > By code check, we found following difference. > ========================================================== > == > --- a/src/java.desktop/aix/native/libawt_xawt/awt/awt_InputMethod.c > Wed May 09 09:05:32 2018 +0900 > +++ b/src/java.desktop/aix/native/libawt_xawt/awt/awt_InputMethod.c > Mon May 14 21:25:50 2018 +0900 > @@ -248,6 +248,10 @@ > "flushText", > "()V"); > JNU_CHECK_EXCEPTION_RETURN(env, NULL); > + if ((*env)->ExceptionOccurred(env)) { > + (*env)->ExceptionDescribe(env); > + (*env)->ExceptionClear(env); > + } > /* IMPORTANT: > The order of the following calls is critical since > "imInstance" may > point to the global reference itself, if > "freeX11InputMethodData" is called > ========================================================== > > Did you remove this code intentionally ? Yes, I removed that one intentionally. There is no point in doing the Exception check/clearing after a call to JNU_CHECK_EXCEPTION_RETURN(env, NULL); > Otherwise, I think the other changes were acceptable. 😊 Thanks and Best regards Christoph