You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by je...@apache.org on 2017/11/22 07:10:52 UTC

svn commit: r1816004 - in /chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src: main/antlr3/org/apache/chemistry/opencmis/server/support/query/ main/java/org/apache/chemistry/opencmis/server/support/query/ test/java...

Author: jens
Date: Wed Nov 22 07:10:52 2017
New Revision: 1816004

URL: http://svn.apache.org/viewvc?rev=1816004&view=rev
Log:
Fix a problem in query parser for statements with double quotes [CMIS-1051]

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/antlr3/org/apache/chemistry/opencmis/server/support/query/CmisBaseLexer.g
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/TestParserStrict.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/antlr3/org/apache/chemistry/opencmis/server/support/query/CmisBaseLexer.g
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/antlr3/org/apache/chemistry/opencmis/server/support/query/CmisBaseLexer.g?rev=1816004&r1=1816003&r2=1816004&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/antlr3/org/apache/chemistry/opencmis/server/support/query/CmisBaseLexer.g (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/antlr3/org/apache/chemistry/opencmis/server/support/query/CmisBaseLexer.g Wed Nov 22 07:10:52 2017
@@ -140,9 +140,9 @@ STRING_LIT
     :  QUOTE ( ESC | ~(BACKSL|QUOTE) )* QUOTE
 	;
 
-WS : ( ' ' | '\t' | '\r'? '\n' )* { $channel=HIDDEN; };
+WS : ( ' ' | '\t' | '\r'? '\n' )+ { $channel=HIDDEN; };
 
-TIME_LIT : TIMESTAMP WS STRING_LIT;
+TIME_LIT : TIMESTAMP WS? STRING_LIT;
 
 ID :
     ('a'..'z'|'A'..'Z'|'_')

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java?rev=1816004&r1=1816003&r2=1816004&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/query/QueryUtilStrict.java Wed Nov 22 07:10:52 2017
@@ -18,6 +18,10 @@
  */
 package org.apache.chemistry.opencmis.server.support.query;
 
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
+import org.antlr.runtime.ANTLRInputStream;
 import org.antlr.runtime.ANTLRStringStream;
 import org.antlr.runtime.CharStream;
 import org.antlr.runtime.CommonTokenStream;
@@ -54,6 +58,8 @@ public class QueryUtilStrict extends Que
     @Override
     public CommonTree parseStatement() throws RecognitionException {
         CharStream input = new ANTLRStringStream(statement);
+//    		InputStream lexerInput = new ByteArrayInputStream(statement.getBytes());
+//        CharStream input = new ANTLRInputStream(lexerInput, "UTF-8");
         CmisQlStrictLexer lexer = new CmisQlStrictLexer(input);
         tokens = new CommonTokenStream(lexer);
         CmisQlStrictParser parser = new CmisQlStrictParser(tokens);

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/TestParserStrict.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/TestParserStrict.java?rev=1816004&r1=1816003&r2=1816004&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/TestParserStrict.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/test/java/org/apache/chemistry/opencmis/server/support/query/TestParserStrict.java Wed Nov 22 07:10:52 2017
@@ -341,6 +341,12 @@ public class TestParserStrict extends Ab
         testLexerFail("TIME_LIT", "TIMESTAMP 123");
     }
 
+    // "timestamp'123'" OK
+    @Test
+    public void testTIME_LIT4() throws Exception {
+        testLexerOk("TIME_LIT", "TIMESTAMP'123'");
+    }
+
     // ----- Parser tests -----
 
     // literal:
@@ -756,4 +762,9 @@ public class TestParserStrict extends Ab
         testParserOk("query", "SELECT * FROM cmis:document " + "WHERE cmis:name LIKE 'abc\\%'");
     }
 
+    @Test
+    public void queryDoubleQuotes() throws Exception {
+        testParserFail("query", "SELECT * FROM cmis:document WHERE cmis:name = \"a\"");
+    }
+
 }