CQL escape character is not obeyed in text searches

XMLWordPrintable

    • 5
    • Severity 3 - Minor

      Issue Summary

      Escape character for cql search filter is not working as documented here

      Steps to Reproduce

      • Create a page with title test page | space
      • Perform CQL search from the browser the spaces are replaced by %20 and was able to reproduce the error:
      /rest/api/content/search?cql=title%20~%20"test%20page%20|%20space"
      

      Note: Document mentions:

      If you wish to use these characters in queries, you need to:

      • surround them with quote-marks (you can use either single quote-marks (') or double quote-marks ("); and, if you are searching a text field and the character is on the list of reserved characters for text searches
      • precede them with two backslashes.

      Expected Results

      • Query to return results for all the pages with similar text in the title.

      Actual Results

      HTTP Status 400 – Bad Request
      Type Exception Report

      Message Invalid character found in the request target [/wiki/rest/api/content/search?cql=title=%22test%20page%20|%20space%22 ]. The valid characters are defined in RFC 7230 and RFC 3986

      Description The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

      Exception

      java.lang.IllegalArgumentException: Invalid character found in the request target [/wiki/rest/api/content/search?cql=title=%22test%20page%20|%20space%22 ]. The valid characters are defined in RFC 7230 and RFC 3986
      org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:494)
      org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:271)
      org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
      org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
      org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
      org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
      org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
      org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
      org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      java.base/java.lang.Thread.run(Thread.java:829)
      Note The full stack trace of the root cause is available in the server logs.

      Apache Tomcat/9.0.62

      Workaround

      text%20~%20%22test%20page%20%7C%20space%22
      

            Assignee:
            Unassigned
            Reporter:
            Pavani
            Votes:
            2 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: