JDK-4492682 : Devanagari KeyBoardRemapping(Input Method) not working in Win2000 hi_IN
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt:i18n
  • Affected Version: 1.4.0
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_2000
  • CPU: x86
  • Submitted: 2001-08-16
  • Updated: 2001-09-19
  • Resolved: 2001-09-19
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.
Other
1.4.0 beta3Fixed
Related Reports
Relates :  
Description
On a Win 2000, with Hindi enabled as default locale, installed Merlin b75, run the HindiFullLookKeyBoardDemo.html(sent in the attachment herewith) after copying the IndicIM.jar into your JDK_HOME/jre/lib/ext directory.

Step 1: Untar the Bug.tar(in the attachment)
Step2: Copy the IndicIM.jar into your JDK_HOME/jre/lib/ext directory
Step3: Compile HindiFullLookKeyBoardDemo.java with workaround as suggested in bug ID 4459099 for JRE invocation in Win2000 hi_IN locale
Step 4: Run the HindiFullLookKeyBoardDemo.html using the appletviewer after giving policy permissions on win 2000 hi_IN locale.

The observation is that the Deveanagai glyphs are not getting rendered and after sometime java.lang.IllegalArgumentException is thrown.

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: merlin-beta3 FIXED IN: merlin-beta3 INTEGRATED IN: merlin-beta3 VERIFIED IN: merlin-beta3
14-06-2004

EVALUATION I am not really sure what to do with this. We tried to get our Win2K machine set up for Hindi, but we never got it working. It wouldn't even boot tonight. I ran the test on Win NT SP6a in US English. I didn't see any exception thrown. If one were thrown, the exception would be thrown here in awt_Robot.cpp: void AwtRobot::DoKeyEvent( jint jkey, DWORD dwFlags ) { UINT vkey; UINT modifiers; UINT scancode; JNIEnv * env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); // convert Java key into Windows key (and modifiers too) AwtComponent::JavaKeyToWindowsKey(jkey, &vkey, &modifiers); if (vkey == 0) { // no equivalent Windows key found for given Java keycode JNU_ThrowIllegalArgumentException(env, "Invalid key code"); } else { Theory: one of the dynamically mapped keys isn't available under the submitter's keyboard layout? Anyway, the problem with the exception isn't likely to have anything to do with the glyphs not rendering. I'd be happy to investigate it if we could get an environment set up, but my hunch is that it isn't a bug in Java. When I ran the program, it rendered a bunch of letters in the JTextArea, so it probably isn't focus. Since this is a swing application, if the glyphs are simply rendering incorrectly, it is probably 2D. If I'm wrong about the subcategory, just send it back to us, or classes_fontprop, or IM, or whoever. BTW, did this program work as expected in an earlier build? ###@###.### 2001-08-19 ------------------------------------------------------------------- This program works fine in en_US locale in Win 2K prof. In the earlier builds JVM itself was not getting initialized in Win 2K Prof Hindi locale . We had just this time got the work around for running the same, it is then we found that the Devanagari glyphs are not getting rendered in hi_IN locale in Win 2000 Prof ###@###.### 2001-08-20 -------------------------------------------------------------------------- This seems likely to be related to input methods, certainly the reported exception has nothing to do with rendering per se. I'm reassigning to i18n. ###@###.### 2001-08-20 -------------------------------------------------------------------------- Hindi keyboard layout (input locale) on Windows does not work at all with JDK, as JDK is not a Unicode application according to Microsoft's terminology. So if the Windows' Hindi keyboard layout is used on JDK, it just generates '?' for each key stroke. This is a known restriction on the current JDK and will be addressed in Tiger. To avoid this problem, I changed the Windows Host Input Method Adapter to not advertise Hindi locale as its supported locae, so that the call selectInputMethod(hindi locale) do not select the Windows Host Adapter. This way the Hindi input method(IndicIM.jar) is successfully selected. ###@###.### 2001-08-21
21-08-2001