JDK-8148984 : [macosx] Chinese Comma cannot be entered using Pinyin Input Method on OS X
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 8u72,9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: os_x
  • Submitted: 2016-02-03
  • Updated: 2016-11-28
  • Resolved: 2016-07-04
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.
8u102Fixed 9 b127Fixed
Related Reports
Relates :  
Cannot input Chinese comma (fullwidth comma U+FF0C) in Java application on
Mac OS using standard system Pinyin input method.  A latin comma is inserted

Is the issue applicable to JDK 7?

Is it possible to create an automated test? Maybe robot or jemmy can be used to emulate input without switching input method?

Problem description: 'Latin comma' character is entered in text field component instead of the required 'fullwidth comma' character, when ',' character is pressed on the keyboard and Pinyin ��� Traditional or Simplified IM is enabled, because KeyEvent is generated instead of InputMethodEvent. Fix: It is necessary to generate InputMethodEvent for the characters from 'Halfwidth and Fullwidth Forms' Unicode block (U+FF00 - U+FFEF). So the method isCodePointInUnicodeBlockNeedingIMEvent() in AWTView.m should be updated.

Steps to reproduce: 1) Run attached simple program, file name: JTextFieldTest.java 2) Make 'Pinyin - Simplified' an active input method 3) Press ',' key on the keyboard while focus is inside application's text field. Expected result: fullwidth comma (U+FF0C) character is inserted, just like this happens in native applications (e.g. TextEdit). (This character takes noticeably more horizontal space than latin comma) Actual result: comma (U+002C) character is inserted.

testcase attached

jdk8132503 is a very similar issue.