Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-11770

XWQL doesn't support Unicode characters in the class name

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • Critical
    • None
    • 6.4
    • Query
    • None
    • Unknown

    Description

      The following HQL query works fine:

      $services.query.hql(", BaseObject as obj where doc.fullName = obj.name and obj.className = 'TâchesTrésorerieCode.TâchesTrésorerieClass'").execute()
      

      While the equivalent XWQL query:

      $services.query.xwql('from doc.object(TâchesTrésorerieCode.TâchesTrésorerieClass)').execute()
      

      throws:

      Caused by: org.xwiki.query.QueryException: Exception while translating [from doc.object(TâchesTrésorerieCode.TâchesTrésorerieClass)] XWQL query to the [hql] language. Query statement = [from doc.object(TâchesTrésorerieCode.TâchesTrésorerieClass)]
      	at org.xwiki.query.xwql.internal.XWQLQueryExecutor.execute(XWQLQueryExecutor.java:102)
      	at org.xwiki.query.internal.DefaultQueryExecutorManager.execute(DefaultQueryExecutorManager.java:71)
      	at org.xwiki.query.internal.SecureQueryExecutorManager.execute(SecureQueryExecutorManager.java:90)
      	at org.xwiki.query.internal.DefaultQuery.execute(DefaultQuery.java:248)
      	at org.xwiki.query.internal.ScriptQuery.execute(ScriptQuery.java:236)
      	at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
      	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
      	... 125 more
      Caused by: org.xwiki.query.jpql.lexer.LexerException: [1,56] Unknown token: â
      	at org.xwiki.query.jpql.lexer.Lexer.getToken(Lexer.java:809)
      	at org.xwiki.query.jpql.lexer.Lexer.peek(Lexer.java:36)
      	at org.xwiki.query.jpql.parser.Parser.parse(Parser.java:110)
      	at org.xwiki.query.jpql.internal.JPQLParser.parse(JPQLParser.java:46)
      	at org.xwiki.query.xwql.internal.hql.XWQLtoHQLTranslator.translate(XWQLtoHQLTranslator.java:55)
      	at org.xwiki.query.xwql.internal.XWQLQueryExecutor.execute(XWQLQueryExecutor.java:79)
      	... 135 more
      

      This affects for instance the AppWithinMinutes class editor, which uses such a query to retrieve all the application entries when you rename a field. This means you cannot rename a field from an application created with AppWithinMinutes if the application name contains Unicode characters (accents).

      Attachments

        Activity

          People

            mflorea Marius Dumitru Florea
            mflorea Marius Dumitru Florea
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: