JDK-4404190 : can't input type Thai text in Stylepad or other jTextArea app
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 1.4.0
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris_7
  • CPU: sparc
  • Submitted: 2001-01-12
  • Updated: 2001-01-12
  • Resolved: 2001-01-12
Related Reports
Duplicate :  
Description
Merlin b47, ran some jTextArea or jTextField tests, or run demo app Stylepad, with IndicInputMethod.jar and KeyMapIM.jar installed, which should enable Indic or Thai input.
I can select Hebrew, Arabic, Devanagari input method, and input the related language text, but when Thai is selected, the app will promp "Setting locale to ar", however, the ouput was still in English-like text with  maybe just a few Thai symbols. If I copied some Thai text from other app, say, I was able to type Thai text in Terminal, so I copied the Thai text, the following exceptions are thrown:

java.io.UnsupportedEncodingException: X11-COMPOUND_TEXT
        at sun.io.Converters.getConverterClass(Converters.java:117)
        at sun.io.Converters.newConverter(Converters.java:148)
        at sun.io.ByteToCharConverter.getConverter(ByteToCharConverter.java:67)
        at java.io.InputStreamReader$ConverterFiller.<init>(InputStreamReader.java:193)
        at java.io.InputStreamReader$ConverterFiller.<init>(InputStreamReader.java:182)
        at java.io.InputStreamReader.setup(InputStreamReader.java:92)
        at java.io.InputStreamReader.<init>(InputStreamReader.java:134)
        at sun.awt.datatransfer.DataTransferer$ReencodingInputStream.<init>(DataTransferer.java:1196)
        at sun.awt.datatransfer.DataTransferer.translateBytesOrStreamToInputStream(DataTransferer.java:1109)
        at sun.awt.datatransfer.DataTransferer.translateBytesOrStream(DataTransferer.java:1008)
        at sun.awt.datatransfer.DataTransferer.translateBytes(DataTransferer.java:862)
        at sun.awt.datatransfer.ClipboardTransferable$DataFactory.getTransferData(ClipboardTransferable.java:56)
        at sun.awt.datatransfer.ClipboardTransferable.getTransferData(ClipboardTransferable.java:173)
        at java.awt.datatransfer.DataFlavor.getReaderForText(DataFlavor.java:611)
        at javax.swing.plaf.basic.BasicTextUI$TextTransferHandler.importData(BasicTextUI.java:2184)
        at javax.swing.TransferHandler$TransferAction.actionPerformed(TransferHandler.java:714)
        at javax.swing.text.JTextComponent.paste(JTextComponent.java:1073)
        at javax.swing.text.DefaultEditorKit$PasteAction.actionPerformed(DefaultEditorKit.java:1193)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1605)
        at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1659)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:251)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:284)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1093)
        at javax.swing.plaf.basic.BasicMenuItemUI$MenuDragMouseHandler.menuDragMouseReleased(BasicMenuItemUI.java:992)
        at javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:571)
        at javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:468)
        at javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:415)
        at javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:277)
        at javax.swing.plaf.basic.BasicMenuUI$MouseInputHandler.mouseReleased(BasicMenuUI.java:333)
        at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:230)
        at java.awt.Component.processMouseEvent(Component.java:4861)
        at java.awt.Component.processEvent(Component.java:4687)
        at java.awt.Container.processEvent(Container.java:1299)
        at java.awt.Component.dispatchEventImpl(Component.java:3459)
        at java.awt.Container.dispatchEventImpl(Container.java:1361)
        at java.awt.Component.dispatchEvent(Component.java:3326)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3146)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2866)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2824)
        at java.awt.Container.dispatchEventImpl(Container.java:1335)
        at java.awt.Window.dispatchEventImpl(Window.java:1250)
        at java.awt.Component.dispatchEvent(Component.java:3326)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:437)
        at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:140)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:126)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:121)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)

in addition the following is also thrown continuously (bug 4404011):
Couldn't flush user prefs: java.util.prefs.BackingStoreException: java.util.prefs.InvalidPreferencesFormatException: org.xml.sax.SAXParseException: Element type "map2" is not declared.

Note: the same happens on Win2000, b45.

minchi.tien@eng  1-11-2001

Comments
EVALUATION X11-COMPOUND_TEXT has never been supported directly by InputStreamReader et al. I suspect the real bug here is in the datatransfer subsystem; reassigning. -- mr@eng 2001/1/12
01-09-0178