JDK-8163979 : [macosx] Chinese text shows as Latin w/ openVanilla input method
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 8u102,9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2016-08-12
  • Updated: 2018-02-08
  • Resolved: 2017-02-14
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 10 JDK 8 JDK 9
10Fixed 8u121Fixed 9 b161Fixed
Description
On OS X, when using OpenVanilla Chinese input method in text field, Latin
text is entered instead of Chinese.

Whereas, same input method produces correct result in native applications,
e.g. TextEdit.



Comments
2/13/2017: This is under review now: http://cr.openjdk.java.net/~dmarkov/8163979/webrev.02/ http://mail.openjdk.java.net/pipermail/awt-dev/2017-February/012601.html
13-02-2017

The problem is also reproducible on jdk9.
13-02-2017

There is no possibility to create auto regression test as it requires installation of additional software, (i.e. OpenVanilla input method). So mark as noreg-hard.
13-02-2017

Problem description: If the current keyboard layout is set to non-default value, (e.g. ABC, ABC Extended, etc) during Java launch, the input method functionality is not initialized correctly. The initialisation problems are caused by nativeGetAvailableLocales() function from CInputMethod.m. The function tries to obtain the list of available input method locales using platform API. If the retrieval is failed for some reason, nativeGetAvailableLocales() returns empty list or null. Fix: The function nativeGetAvailableLocales() should return the list contained the current input method locale, if it cannot retrieve the list of available locales from the platform.
09-02-2017

The problem is reproducible on jdk8u and jdk9.
09-02-2017

Steps to reproduce: 1. Build the reproducer, (i.e. javac JTextFieldTest.java) 2. Install OpenVanilla input method (download link is https://github.com/openvanilla/openvanilla/releases/download/1.3.2/OpenVanilla-Installer-Mac-1.3.2.zip ) 3. Make sure that English is selected as current keyboard layout (e.g. ABC Extended) 4. Launch the reproducer application, (i.e. java JTextFieldTest) 5. Switch to OpenVanilla keyboard layout and type some characters in application's text field. Notice Latin text displayed instead of Chinese text
09-02-2017

Reproducer attached
09-02-2017