Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
OpenCMIS 0.4.0
-
None
Description
QueryUtil converts the query statement to a UTF-8 encoded byte array which is used as input to the lexer instead of using the string directly.
Instead of
CharStream input = new ANTLRInputStream(new ByteArrayInputStream(statement.getBytes("UTF-8")));
the input stream should be obtained like this:
CharStream input = new ANTLRStringStream(statement);
The former method transforms the characters in the contains clause of the query
SELECT * FROM cmis:document WHERE CONTAINS ('\u4E2D\u6587')
in an incorrect way.