Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.1
    • Fix Version/s: 2.0.1
    • Labels:
      None

      Description

      How can I use international characters in JEXL expressions?

      For example: myvar == 'U?ytkownik' (string constant contains Polish 'z'
      with dot)

      I get the following exception:

      org.apache.commons.jexl.parser.TokenMgrError: Lexical error at line 1,
      column 17. Encountered: "\u0139" (313), after : "\'U"

        Activity

        Hide
        dion gillard added a comment -

        From Randy H:

        I had similar issue with the latest jexl 1.1 release. Seems the option for
        unicode support is not enabled when using the parser was generated.

        Here is what I did to get it work with non-ASCII code:

        1. Download and unzip jexl 1.1 source from:
        http://www.axint.net/apache/jakarta/commons/jexl/source/commons-jexl-1.1-src.zip

        2. Download and unzip JavaCC 4.0 from:
        https://javacc.dev.java.net/files/documents/17/26777/javacc-4.0.zip

        3. Run javacc-4.0\bin\javacc -UNICODE_INPUT
        commons-jexl-1.1-src\src\java\org\apache\commons\jexl\parser\Parser.jj

        4. Copy *.java to
        commons-jexl-1.1-src\src\java\org\apache\commons\jexl\parser

        5. Run ant -f commons-jexl-1.1-src\build.xml

        6. Use the new jar commons-jexl-1.1-src\target\commons-jexl-1.1.jar

        7. Profilt!

        Show
        dion gillard added a comment - From Randy H: I had similar issue with the latest jexl 1.1 release. Seems the option for unicode support is not enabled when using the parser was generated. Here is what I did to get it work with non-ASCII code: 1. Download and unzip jexl 1.1 source from: http://www.axint.net/apache/jakarta/commons/jexl/source/commons-jexl-1.1-src.zip 2. Download and unzip JavaCC 4.0 from: https://javacc.dev.java.net/files/documents/17/26777/javacc-4.0.zip 3. Run javacc-4.0\bin\javacc -UNICODE_INPUT commons-jexl-1.1-src\src\java\org\apache\commons\jexl\parser\Parser.jj 4. Copy *.java to commons-jexl-1.1-src\src\java\org\apache\commons\jexl\parser 5. Run ant -f commons-jexl-1.1-src\build.xml 6. Use the new jar commons-jexl-1.1-src\target\commons-jexl-1.1.jar 7. Profilt!
        Hide
        dion gillard added a comment -

        javacc 4 generates jdk1.4 compatible source code by default. If you
        need 1.3 or 1.2 compatible input use JDK_VERSION:1.2

        The generated code still seems to have a few 1.4 specific pieces in
        it, such as use of RuntimeException(Throwable).

        If you want to compile Jexl against 1.2/1.3 using maven, you'll need
        the following command line invocation (all on one line):

        maven -Dmaven.compile.fork=yes -Dmaven.compile.executable=c:\jdk1.3.1_16\bin\javac.exe -Dbuild.compiler=modern clean test

        Obviously the javac executable will probably be different on your machine.

        Show
        dion gillard added a comment - javacc 4 generates jdk1.4 compatible source code by default. If you need 1.3 or 1.2 compatible input use JDK_VERSION:1.2 The generated code still seems to have a few 1.4 specific pieces in it, such as use of RuntimeException(Throwable). If you want to compile Jexl against 1.2/1.3 using maven, you'll need the following command line invocation (all on one line): maven -Dmaven.compile.fork=yes -Dmaven.compile.executable=c:\jdk1.3.1_16\bin\javac.exe -Dbuild.compiler=modern clean test Obviously the javac executable will probably be different on your machine.
        Hide
        dion gillard added a comment -

        I've used the original report to add a test to JexlTest, have regenerated the code and tested it.

        I'm doing the tedious merge/restyle of the generated code so it matches SVN and generates smaller commit messages.

        Show
        dion gillard added a comment - I've used the original report to add a test to JexlTest, have regenerated the code and tested it. I'm doing the tedious merge/restyle of the generated code so it matches SVN and generates smaller commit messages.
        Hide
        dion gillard added a comment -

        Code regenerated, test added.
        Committed to svn on 2006-09-26

        Show
        dion gillard added a comment - Code regenerated, test added. Committed to svn on 2006-09-26
        Hide
        Henri Biestro added a comment -

        Bulk change resolved issues before JEXL 2.0.

        Show
        Henri Biestro added a comment - Bulk change resolved issues before JEXL 2.0.

          People

          • Assignee:
            Unassigned
            Reporter:
            dion gillard
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development