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) ; }
}