You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2017/04/14 16:54:54 UTC

[1/4] jena git commit: Typo

Repository: jena
Updated Branches:
  refs/heads/master ebf00626e -> 9e2d458d0


Typo


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/02e26186
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/02e26186
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/02e26186

Branch: refs/heads/master
Commit: 02e26186f75095d853b139e63b9009672874a118
Parents: ebf0062
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Apr 14 17:26:39 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Apr 14 17:49:24 2017 +0100

----------------------------------------------------------------------
 .../apache/jena/riot/process/normalize/CanonicalizeLiteral.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/02e26186/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java b/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java
index 89f0d4c..6a7a224 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java
@@ -45,7 +45,7 @@ public class CanonicalizeLiteral implements Function<Node, Node>
             return node ;
 
         if ( ! node.getLiteralDatatype().isValid(node.getLiteralLexicalForm()) )
-            // Invalid lexicakl form for the datatype - do nothing.
+            // Invalid lexical form for the datatype - do nothing.
             return node;
             
         RDFDatatype dt = node.getLiteralDatatype() ;


[4/4] jena git commit: JENA-1319: This closes #238.

Posted by an...@apache.org.
JENA-1319: This closes #238.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/9e2d458d
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/9e2d458d
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/9e2d458d

Branch: refs/heads/master
Commit: 9e2d458d02f9454e761c29d92471c8ddb29fc839
Parents: 6cb23da
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Apr 14 17:54:21 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Apr 14 17:54:21 2017 +0100

----------------------------------------------------------------------

----------------------------------------------------------------------



[2/4] jena git commit: JENA-1319: Use ExprEvalException; don't produce a stacktrace.

Posted by an...@apache.org.
JENA-1319: Use ExprEvalException; don't produce a stacktrace.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/df0b64ae
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/df0b64ae
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/df0b64ae

Branch: refs/heads/master
Commit: df0b64aed5be80f77a231a1f9669ab20314b8dfa
Parents: 02e2618
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Apr 13 12:14:53 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Apr 14 17:49:38 2017 +0100

----------------------------------------------------------------------
 .../org/apache/jena/sparql/expr/E_Regex.java    | 26 +++++++++++++++++---
 .../org/apache/jena/sparql/expr/RegexJava.java  |  9 +++----
 .../apache/jena/sparql/expr/RegexXerces.java    |  4 +--
 .../sparql/sse/builders/ExprBuildException.java | 11 +++------
 4 files changed, 32 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/df0b64ae/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java
index 3e8046c..f6b6743 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java
@@ -71,11 +71,19 @@ public class E_Regex extends ExprFunctionN
     
     private void init(Expr pattern, Expr flags)
     {
+        try {
         if ( pattern.isConstant() && pattern.getConstant().isString() && ( flags==null || flags.isConstant() ) )
             regexEngine = makeRegexEngine(pattern.getConstant(), (flags==null)?null:flags.getConstant()) ;
+        } catch (ExprEvalException ex) {
+            // Here, we are doing static compilation of the pattern.
+            // ExprEvalException does not have a stacktrace. 
+            // We could throw a non-eval exception.
+            throw ex; //new ExprException(ex.getMessage(), ex.getCause());
+        }
     }
-    
 
+    private String currentFailMessage = null;
+    
     @Override
     public NodeValue eval(List<NodeValue> args)
     {
@@ -84,8 +92,20 @@ public class E_Regex extends ExprFunctionN
         NodeValue vFlags = ( args.size() == 2 ? null : args.get(2) ) ;
         
         RegexEngine regex = regexEngine ;
-        if ( regex == null  )
-            regex = makeRegexEngine(vPattern, vFlags) ;
+        if ( regex == null  ) {
+            // Execution time regex compile (not a constant pattern).
+            try {
+                regex = makeRegexEngine(vPattern, vFlags) ;
+            } catch (ExprEvalException ex) {
+                // Avoid multiple logging of the same message. 
+                String m = ex.getMessage();
+                if ( m != null && ! m.equals(currentFailMessage) )
+                    Log.warn(this, m);
+                currentFailMessage = m;
+                // This becomes an eval error, the FILTER is false and the current row rejected. 
+                throw ex;
+            }
+        }
         
         boolean b = regex.match(arg.getLiteralLexicalForm()) ;
         

http://git-wip-us.apache.org/repos/asf/jena/blob/df0b64ae/jena-arq/src/main/java/org/apache/jena/sparql/expr/RegexJava.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/RegexJava.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/RegexJava.java
index 6cd16f5..4a85b2f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/RegexJava.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/RegexJava.java
@@ -22,8 +22,6 @@ import java.util.regex.Matcher ;
 import java.util.regex.Pattern ;
 import java.util.regex.PatternSyntaxException ;
 
-import org.apache.jena.query.QueryParseException ;
-
 public class RegexJava implements RegexEngine
 {
     Pattern regexPattern ;
@@ -49,7 +47,7 @@ public class RegexJava implements RegexEngine
             return Pattern.compile(patternStr, mask) ;
         } 
         catch (PatternSyntaxException pEx)
-        { throw new ExprException("Regex: Pattern exception: "+pEx) ; }
+        { throw new ExprEvalException("Regex: Pattern exception: "+pEx) ; }
     }
 
 
@@ -63,7 +61,6 @@ public class RegexJava implements RegexEngine
         {
             switch(modifiers.charAt(i))
             {
-                //case 'i' : newMask |= Pattern.CASE_INSENSITIVE;     break ;
                 case 'i' : 
                     // Need both (Java 1.4)
                     newMask |= Pattern.UNICODE_CASE ;
@@ -73,8 +70,8 @@ public class RegexJava implements RegexEngine
                 case 's' : newMask |= Pattern.DOTALL ;              break ;
                 //case 'x' : newMask |= Pattern.;  break ;
                 
-                default  : 
-                    throw new QueryParseException("Illegal flag in regex modifiers: "+modifiers.charAt(i), -1, -1) ;
+                default: 
+                    throw new ExprEvalException("Illegal flag in regex modifiers: "+modifiers.charAt(i)) ;
             }
         }
         return newMask ;

http://git-wip-us.apache.org/repos/asf/jena/blob/df0b64ae/jena-arq/src/main/java/org/apache/jena/sparql/expr/RegexXerces.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/RegexXerces.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/RegexXerces.java
index 491fbda..890f4f3 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/RegexXerces.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/RegexXerces.java
@@ -41,9 +41,9 @@ public class RegexXerces implements RegexEngine
         // Input : only  m s i x
         // Check/modify flags.
         // Always "u", never patternStr
-        //x: Remove whitespace characters (#x9, #xA, #xD and #x20) unless in [] classes
+        // x: Remove whitespace characters (#x9, #xA, #xD and #x20) unless in [] classes
         try { return new RegularExpression(patternStr, flags) ; }
         catch (ParseException pEx)
-        { throw new ExprException("Regex: Pattern exception: "+pEx) ; }
+        { throw new ExprEvalException("Regex: Pattern exception: "+pEx) ; }
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/df0b64ae/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/ExprBuildException.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/ExprBuildException.java b/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/ExprBuildException.java
index 802d483..d2bbd2b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/ExprBuildException.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/ExprBuildException.java
@@ -20,10 +20,7 @@ package org.apache.jena.sparql.sse.builders;
 
 
 public class ExprBuildException extends BuildException
-    {
-
-//        public OpBuildException(Throwable cause) { super(cause) ; }
-//        public OpBuildException() { super() ; }
-        public ExprBuildException (String msg) { super(msg) ; }
-//        public OpBuildException (String msg, Throwable cause) { super(msg, cause) ; }
-    }
+{
+    public ExprBuildException (String msg) { super(msg) ; }
+    public ExprBuildException (String msg, Throwable cause) { super(msg, cause) ; }
+}


[3/4] jena git commit: Tests for regex errors.

Posted by an...@apache.org.
Tests for regex errors.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/6cb23da5
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/6cb23da5
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/6cb23da5

Branch: refs/heads/master
Commit: 6cb23da5fd379814b52e1c6a595350a4721274f4
Parents: df0b64a
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Apr 13 17:32:05 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Apr 14 17:49:39 2017 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/jena/sparql/expr/E_Regex.java    | 6 ++----
 .../src/test/java/org/apache/jena/sparql/expr/TestRegex.java  | 7 +++++++
 2 files changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/6cb23da5/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java
index f6b6743..a4d89d4 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java
@@ -97,7 +97,7 @@ public class E_Regex extends ExprFunctionN
             try {
                 regex = makeRegexEngine(vPattern, vFlags) ;
             } catch (ExprEvalException ex) {
-                // Avoid multiple logging of the same message. 
+                // Avoid multiple logging of the same message (at least if adjacent) 
                 String m = ex.getMessage();
                 if ( m != null && ! m.equals(currentFailMessage) )
                     Log.warn(this, m);
@@ -106,10 +106,8 @@ public class E_Regex extends ExprFunctionN
                 throw ex;
             }
         }
-        
         boolean b = regex.match(arg.getLiteralLexicalForm()) ;
-        
-        return b ?  NodeValue.TRUE : NodeValue.FALSE ; 
+        return b ? NodeValue.TRUE : NodeValue.FALSE ; 
     }
 
     public static RegexEngine makeRegexEngine(NodeValue vPattern, NodeValue vFlags)

http://git-wip-us.apache.org/repos/asf/jena/blob/6cb23da5/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestRegex.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestRegex.java b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestRegex.java
index 547732c..53e883b 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestRegex.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestRegex.java
@@ -63,5 +63,12 @@ public class TestRegex extends BaseTest
         tmp = tmp + ")" ;
         return tmp ; 
     }
+
+    // Bad regex
+    @Test(expected=ExprEvalException.class)
+    public void testRegexErr1() { regexTest("ABC", "(", null, false) ; }
     
+    // No such flag
+    @Test(expected=ExprEvalException.class)
+    public void testRegexErr2() { regexTest("ABC", "abc", "g", false) ; }
 }