RYA-466 Updated regexes to not conflict on binding names.  Closes #279

Project: http://git-wip-us.apache.org/repos/asf/incubator-rya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rya/commit/770bd7e4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rya/tree/770bd7e4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rya/diff/770bd7e4

Branch: refs/heads/master
Commit: 770bd7e4ac971b6737651266247129fc5346b5cb
Parents: 010c692
Author: Andrew Smith <smith...@gmail.com>
Authored: Thu Mar 1 15:20:23 2018 -0500
Committer: Valiyil <puja.vali...@parsons.com>
Committed: Fri Mar 9 13:01:31 2018 -0500

----------------------------------------------------------------------
 .../org/apache/rya/api/utils/QueryInvestigator.java   | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/770bd7e4/common/rya.api/src/main/java/org/apache/rya/api/utils/QueryInvestigator.java
----------------------------------------------------------------------
diff --git 
a/common/rya.api/src/main/java/org/apache/rya/api/utils/QueryInvestigator.java 
b/common/rya.api/src/main/java/org/apache/rya/api/utils/QueryInvestigator.java
index a6c93e9..54f0010 100644
--- 
a/common/rya.api/src/main/java/org/apache/rya/api/utils/QueryInvestigator.java
+++ 
b/common/rya.api/src/main/java/org/apache/rya/api/utils/QueryInvestigator.java
@@ -20,10 +20,9 @@ package org.apache.rya.api.utils;
 
 import static java.util.Objects.requireNonNull;
 
+import java.util.regex.Pattern;
+
 import org.openrdf.query.MalformedQueryException;
-import org.openrdf.query.parser.ParsedGraphQuery;
-import org.openrdf.query.parser.ParsedQuery;
-import org.openrdf.query.parser.QueryParserUtil;
 import org.openrdf.query.parser.sparql.SPARQLParser;
 
 import edu.umd.cs.findbugs.annotations.DefaultAnnotation;
@@ -51,10 +50,10 @@ public class QueryInvestigator {
 
         try {
             // Constructs are queries, so try to create a ParsedQuery.
-            final ParsedQuery parsedQuery = PARSER.parseQuery(sparql, null);
+            PARSER.parseQuery(sparql, null);
 
             // Check to see if the SPARQL looks like a CONSTRUCT query.
-            return parsedQuery instanceof ParsedGraphQuery;
+            return 
Pattern.matches("[\\s\\S]*?construct\\s*?\\{[\\s\\S]*?\\}[\\s\\S]*?where\\s*\\{[\\s\\S]*?\\}",
 sparql.toLowerCase());
 
         } catch(final MalformedQueryException queryE) {
             try {
@@ -84,8 +83,9 @@ public class QueryInvestigator {
         try {
             // Inserts are updated, so try to create a ParsedUpdate.
             PARSER.parseUpdate(sparql, null);
-            final String strippedOperation = 
QueryParserUtil.removeSPARQLQueryProlog(sparql.toLowerCase());
-            return strippedOperation.startsWith("insert");
+
+            // Check to see if the SPARQL looks like an INSERT query.
+            return 
Pattern.matches("[\\s\\S]*?insert\\s*?\\{[\\s\\S]*?\\}[\\s\\S]*?where\\s*\\{[\\s\\S]*?\\}",
 sparql.toLowerCase());
         } catch(final MalformedQueryException updateE) {
             try {
                 // Maybe it's a query.

Reply via email to