ICEfaces
  1. ICEfaces
  2. ICE-5937

autoComplete does not work with chinese input

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: 1.8.2-EE-GA_P01
    • Fix Version/s: EE-1.8.2.GA_P03
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      -

      Description

      When a user types Chinese characters, the autoComplete does not work until you press the down key. However, it is not intuitive that the down key should be pressed and should be automatic. Placing a system.out in the autoComplete valueChangeListener shows that chinese input is unrecognizable:

      ** Chinese character input:? **
      ** Chinese character input:?? **
      ** Chinese character input:??? **

      Attached is a test case based on our autoComplete tutorial and sample input can be found here: http://cn.yahoo.com/

        Activity

        Hide
        yip.ng added a comment - - edited

        Got the following exception when building and running app. in Intellij:

        SEVERE: Servlet.service() for servlet jsp threw exception
        java.lang.LinkageError: loader constraints violated when linking javax/el/ExpressionFactory class
        at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)
        at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
        at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)
        at java.lang.Thread.run(Thread.java:595)

        Show
        yip.ng added a comment - - edited Got the following exception when building and running app. in Intellij: SEVERE: Servlet.service() for servlet jsp threw exception java.lang.LinkageError: loader constraints violated when linking javax/el/ExpressionFactory class at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22) at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52) at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584) at java.lang.Thread.run(Thread.java:595)
        Hide
        yip.ng added a comment -

        Set up code in component showcase to run sample.

        Show
        yip.ng added a comment - Set up code in component showcase to run sample.
        Hide
        yip.ng added a comment - - edited

        Chinese characters do get input and transmitted to server successfully. See video at http://screencast.com/t/oQdkecmtzE and screenshot 1.

        The characters display as question marks because the program doing the display can't handle the Unicode characters properly, as can be seen in screenshot 1, where Intellij (or Tomcat?) can't display the characters with the correct Unicode.

        The handling of key events for displaying the list is a big problem. As can be seen from the video, the key sequences for inputting a character is totally different from English ASCII input, and they can be different from input method to input method and keyboard to keyboard. And what about copying and pasting a character or a string of characters? And what about mix typing English characters and Chinese characters? All these the auto complete component can't seem to handle. Seems it can only handle ASCII input where one key maps to one character.

        Show
        yip.ng added a comment - - edited Chinese characters do get input and transmitted to server successfully. See video at http://screencast.com/t/oQdkecmtzE and screenshot 1. The characters display as question marks because the program doing the display can't handle the Unicode characters properly, as can be seen in screenshot 1, where Intellij (or Tomcat?) can't display the characters with the correct Unicode. The handling of key events for displaying the list is a big problem. As can be seen from the video, the key sequences for inputting a character is totally different from English ASCII input, and they can be different from input method to input method and keyboard to keyboard. And what about copying and pasting a character or a string of characters? And what about mix typing English characters and Chinese characters? All these the auto complete component can't seem to handle. Seems it can only handle ASCII input where one key maps to one character.
        Hide
        Ken Fyten added a comment -

        Given the complex nature of this issue, it is not feasible for us to attempt to address this on the ice:selectInputText component. It may be possible to improve support for none-ASCII text input with a new auto-complete component as part of the ICEfaces Advanced Components initiative.

        Show
        Ken Fyten added a comment - Given the complex nature of this issue, it is not feasible for us to attempt to address this on the ice:selectInputText component. It may be possible to improve support for none-ASCII text input with a new auto-complete component as part of the ICEfaces Advanced Components initiative.

          People

          • Assignee:
            yip.ng
            Reporter:
            Tyler Johnson
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: