You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2016/06/01 05:08:04 UTC
olingo-odata2 git commit: [OLINGO-955] Fix NPE for ListProcessors
Repository: olingo-odata2
Updated Branches:
refs/heads/master 46afc9901 -> 5a2718b0a
[OLINGO-955] Fix NPE for ListProcessors
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/5a2718b0
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/5a2718b0
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/5a2718b0
Branch: refs/heads/master
Commit: 5a2718b0a3084f4f241d852f9ad4387d0b0661f4
Parents: 46afc99
Author: mibo <mi...@apache.org>
Authored: Wed Jun 1 07:07:34 2016 +0200
Committer: mibo <mi...@apache.org>
Committed: Wed Jun 1 07:07:34 2016 +0200
----------------------------------------------------------------------
.../processor/core/ListsProcessor.java | 9 ++---
.../odata2/ref/processor/ListsProcessor.java | 35 ++++++++++----------
2 files changed, 23 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/5a2718b0/odata2-annotation-processor/annotation-processor-core/src/main/java/org/apache/olingo/odata2/annotation/processor/core/ListsProcessor.java
----------------------------------------------------------------------
diff --git a/odata2-annotation-processor/annotation-processor-core/src/main/java/org/apache/olingo/odata2/annotation/processor/core/ListsProcessor.java b/odata2-annotation-processor/annotation-processor-core/src/main/java/org/apache/olingo/odata2/annotation/processor/core/ListsProcessor.java
index a03136b..df23b31 100644
--- a/odata2-annotation-processor/annotation-processor-core/src/main/java/org/apache/olingo/odata2/annotation/processor/core/ListsProcessor.java
+++ b/odata2-annotation-processor/annotation-processor-core/src/main/java/org/apache/olingo/odata2/annotation/processor/core/ListsProcessor.java
@@ -1431,9 +1431,9 @@ public class ListsProcessor extends DataSourceProcessor {
final MethodExpression methodExpression = (MethodExpression) expression;
final String first = evaluateExpression(data, methodExpression.getParameters().get(0));
final String second = methodExpression.getParameterCount() > 1 ?
- evaluateExpression(data, methodExpression.getParameters().get(1)) : null;
+ evaluateExpression(data, methodExpression.getParameters().get(1)) : "";
final String third = methodExpression.getParameterCount() > 2 ?
- evaluateExpression(data, methodExpression.getParameters().get(2)) : null;
+ evaluateExpression(data, methodExpression.getParameters().get(2)) : "";
switch (methodExpression.getMethod()) {
case ENDSWITH:
@@ -1449,8 +1449,9 @@ public class ListsProcessor extends DataSourceProcessor {
case TRIM:
return first.trim();
case SUBSTRING:
- final int offset = Integer.parseInt(second);
- return first.substring(offset, offset + Integer.parseInt(third));
+ final int offset = second.length() == 0 ? 0 : Integer.parseInt(second);
+ final int length = third.length() == 0 ? 0 : Integer.parseInt(second);
+ return first.substring(offset, offset + length);
case SUBSTRINGOF:
return Boolean.toString(second.contains(first));
case CONCAT:
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/5a2718b0/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java b/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java
index 86ae0cb..fb48d5f 100644
--- a/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java
+++ b/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java
@@ -1438,26 +1438,27 @@ public class ListsProcessor extends ODataSingleProcessor {
final MethodExpression methodExpression = (MethodExpression) expression;
final String first = evaluateExpression(data, methodExpression.getParameters().get(0));
final String second = methodExpression.getParameterCount() > 1 ?
- evaluateExpression(data, methodExpression.getParameters().get(1)) : null;
+ evaluateExpression(data, methodExpression.getParameters().get(1)) : "";
final String third = methodExpression.getParameterCount() > 2 ?
- evaluateExpression(data, methodExpression.getParameters().get(2)) : null;
+ evaluateExpression(data, methodExpression.getParameters().get(2)) : "";
switch (methodExpression.getMethod()) {
- case ENDSWITH:
- return Boolean.toString(first.endsWith(second));
- case INDEXOF:
- return Integer.toString(first.indexOf(second));
- case STARTSWITH:
- return Boolean.toString(first.startsWith(second));
- case TOLOWER:
- return first.toLowerCase(Locale.ROOT);
- case TOUPPER:
- return first.toUpperCase(Locale.ROOT);
- case TRIM:
- return first.trim();
- case SUBSTRING:
- final int offset = Integer.parseInt(second);
- return first.substring(offset, offset + Integer.parseInt(third));
+ case ENDSWITH:
+ return Boolean.toString(first.endsWith(second));
+ case INDEXOF:
+ return Integer.toString(first.indexOf(second));
+ case STARTSWITH:
+ return Boolean.toString(first.startsWith(second));
+ case TOLOWER:
+ return first.toLowerCase(Locale.ROOT);
+ case TOUPPER:
+ return first.toUpperCase(Locale.ROOT);
+ case TRIM:
+ return first.trim();
+ case SUBSTRING:
+ final int offset = second.length() == 0 ? 0 : Integer.parseInt(second);
+ final int length = third.length() == 0 ? 0 : Integer.parseInt(second);
+ return first.substring(offset, offset + length);
case SUBSTRINGOF:
return Boolean.toString(second.contains(first));
case CONCAT: