<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hello,<div class=""><br class=""></div><div class="">Could you review the fix for JDK 16, please?</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>bug: <a href="https://bugs.openjdk.java.net/browse/JDK-8232114" class="">https://bugs.openjdk.java.net/browse/JDK-8232114</a></div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>webrev: <a href="http://cr.openjdk.java.net/~dmarkov/8232114/webrev.00/" class="">http://cr.openjdk.java.net/~dmarkov/8232114/webrev.00/</a></div><div class=""><br class=""></div><div class="">Problem description:</div><div class="">The root cause of the crash is the lack of synchronisation in imjpapi.dll. In particular when IME messages are processed in the message loop and another message triggered through a SendMessage() call, this clears the buffer context so on further processing the message loop in IME context will point to invalid memory buffer. Microsoft article devoted to this issue: <a href="https://docs.microsoft.com/en-us/troubleshoot/windows/win32/ime-crash-processing-cross-thread-sent-message" class="">https://docs.microsoft.com/en-us/troubleshoot/windows/win32/ime-crash-processing-cross-thread-sent-message</a></div><div class=""><br class=""></div><div class="">Fix: </div><div class="">Replace SendMessage() with PostMessage() for IME messages and implement event based mechanism to notify the sender that the message processing is completed.</div><div class=""><br class=""></div><div class="">Testing:</div><div class="">mach5 client tests (jtreg headful, jck, etc.) are green.</div><div class=""><br class=""></div><div class="">Regards,</div><div class="">Dmitry</div></body></html>