-
Type:
Bug
-
Resolution: Timed out
-
Priority:
Low
-
Component/s: Search - Automation and Indexing
-
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
- Use encoded url: https://www.urlencoder.org/
text%20~%20%22test%20page%20%7C%20space%22