Fix argument checking
Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/76ece86a Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/76ece86a Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/76ece86a Branch: refs/heads/master Commit: 76ece86a8ed03f3898076d776d02ad927f8cc0fd Parents: 523f897 Author: Andy Seaborne <a...@apache.org> Authored: Tue May 17 10:29:41 2016 +0100 Committer: Andy Seaborne <a...@apache.org> Committed: Tue May 17 10:29:41 2016 +0100 ---------------------------------------------------------------------- .../org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java | 9 ++++----- .../org/apache/jena/sparql/function/library/FN_Round.java | 8 +++++--- .../jena/sparql/function/library/FN_Round_Half_Even.java | 2 +- .../sparql/function/library/FN_StrNormalizeUnicode.java | 5 ++--- .../jena/sparql/function/library/FN_StrSubstring.java | 5 ++--- .../org/apache/jena/sparql/function/library/substring.java | 5 ++--- 6 files changed, 16 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/76ece86a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java index 75ea67d..817c20f 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java @@ -329,10 +329,9 @@ public class XSDFuncOp } } - // THE FOLLOWING ROUND FUNCTION IS the xpath3 compatible version of the round function above. - // I created a new one because the round function is used in the E_NumRound class used for - // SPARQL 1.1 compatible syntax that in turn is compatible with Xpath 2 for which the spec - // for round was different. + // The following function 'roundXpath3' implements the definition for "fn:round" in F&O v3. + // This is diffrent to the "fn:round" in F&O v2. + // SPARQL 1.1 references F&O v2. private static BigDecimal roundDecimalValue(BigDecimal dec,int precision,boolean isHalfToEven) { if(isHalfToEven){ @@ -347,7 +346,7 @@ public class XSDFuncOp } } - public static NodeValue roundXpath3(NodeValue v,NodeValue precision,boolean isHalfEven) { + public static NodeValue roundXpath3(NodeValue v, NodeValue precision, boolean isHalfEven) { if(!precision.isInteger()){ throw new ExprEvalTypeException("The precision for rounding should be an integer"); } http://git-wip-us.apache.org/repos/asf/jena/blob/76ece86a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_Round.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_Round.java b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_Round.java index 8589150..206684b 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_Round.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_Round.java @@ -30,7 +30,7 @@ import java.util.List; /** round(expression) */ -public class FN_Round extends FunctionBase +public class FN_Round extends FunctionBase { public FN_Round() { super() ; } @@ -43,9 +43,11 @@ public class FN_Round extends FunctionBase @Override public NodeValue exec(List<NodeValue> args) { + + if ( args.size() == 0 ) + throw new ExprEvalException("FN_Round: Wrong number of arguments: zero arguments") ; if ( args.size() > 2 ) - throw new ExprEvalException("substring: Wrong number of arguments: "+ - args.size()+" : [wanted 1 or 2]") ; + throw new ExprEvalException("FN_Round: Wrong number of arguments: "+args.size()+" : [wanted 1 or 2]") ; NodeValue v1 = args.get(0) ; http://git-wip-us.apache.org/repos/asf/jena/blob/76ece86a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_Round_Half_Even.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_Round_Half_Even.java b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_Round_Half_Even.java index 1b35803..685331f 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_Round_Half_Even.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_Round_Half_Even.java @@ -42,7 +42,7 @@ public class FN_Round_Half_Even extends FunctionBase public NodeValue exec(List<NodeValue> args) { if ( args.size() > 2 ) - throw new ExprEvalException("substring: Wrong number of arguments: "+ + throw new ExprEvalException("FN_Round_Half_Even: Wrong number of arguments: "+ args.size()+" : [wanted 1 or 2]") ; NodeValue v1 = args.get(0) ; http://git-wip-us.apache.org/repos/asf/jena/blob/76ece86a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_StrNormalizeUnicode.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_StrNormalizeUnicode.java b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_StrNormalizeUnicode.java index e7a5813..3ae73fa 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_StrNormalizeUnicode.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_StrNormalizeUnicode.java @@ -40,9 +40,8 @@ public class FN_StrNormalizeUnicode extends FunctionBase @Override public NodeValue exec(List<NodeValue> args) { - if ( args.size() > 2 ) - throw new ExprEvalException("substring: Wrong number of arguments: "+ - args.size()+" : [wanted 1 or 2]") ; + if ( args.size() != 1 || args.size() != 2 ) + throw new ExprEvalException("FN_StrNormalizeUnicode: Wrong number of arguments: "+args.size()+" : [wanted 1 or 2]") ; NodeValue v1 = args.get(0) ; http://git-wip-us.apache.org/repos/asf/jena/blob/76ece86a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_StrSubstring.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_StrSubstring.java b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_StrSubstring.java index e7bf963..8fbe239 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_StrSubstring.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_StrSubstring.java @@ -43,9 +43,8 @@ public class FN_StrSubstring extends FunctionBase @Override public NodeValue exec(List<NodeValue> args) { - if ( args.size() > 3 ) - throw new ExprEvalException("substring: Wrong number of arguments: "+ - args.size()+" : [wanted 2 or 3]") ; + if ( args.size() != 2 || args.size() != 3 ) + throw new ExprEvalException("substring: Wrong number of arguments: "+args.size()+" : [wanted 2 or 3]") ; NodeValue v1 = args.get(0) ; NodeValue v2 = args.get(1) ; http://git-wip-us.apache.org/repos/asf/jena/blob/76ece86a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/substring.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/substring.java b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/substring.java index b16a8fb..dce743a 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/substring.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/substring.java @@ -43,9 +43,8 @@ public class substring extends FunctionBase @Override public NodeValue exec(List<NodeValue> args) { - if ( args.size() > 3 ) - throw new ExprEvalException("substring: Wrong number of arguments: "+ - args.size()+" : [wanted 2 or 3]") ; + if ( args.size() != 2 || args.size() != 3 ) + throw new ExprEvalException("substring: Wrong number of arguments: "+args.size()+" : [wanted 2 or 3]") ; NodeValue v1 = args.get(0) ; NodeValue v2 = args.get(1) ;