Repository: camel Updated Branches: refs/heads/camel-2.18.x 8092484fc -> b119672f6 refs/heads/master abb08fa9b -> 25d2f4b84
CAMEL-10386: array size > 0 to enable nullsafe empty list expressions Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/b119672f Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/b119672f Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/b119672f Branch: refs/heads/camel-2.18.x Commit: b119672f6fea4e3acca67162ec815928002ae6b6 Parents: 8092484 Author: dmitriy <xhu...@gmail.com> Authored: Thu Oct 13 18:01:55 2016 -0400 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri Oct 14 10:18:32 2016 +0200 ---------------------------------------------------------------------- .../java/org/apache/camel/language/bean/BeanExpression.java | 2 +- .../java/org/apache/camel/language/simple/SimpleTest.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/b119672f/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java b/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java index 7ebf3d3..031f556 100644 --- a/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java +++ b/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java @@ -381,7 +381,7 @@ public class BeanExpression implements Expression, Predicate { } } } - if (num != null && num >= 0 && list.size() > num - 1) { + if (num != null && num >= 0 && list.size() > num - 1 && list.size() > 0) { return list.get(num); } if (!nullSafe) { http://git-wip-us.apache.org/repos/asf/camel/blob/b119672f/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java b/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java index f0bb9b9..2e58195 100644 --- a/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java +++ b/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java @@ -258,6 +258,15 @@ public class SimpleTest extends LanguageTestSupport { assertExpression("${body[0][code]}", 4321); } + public void testOGNLBodyEmptyList() throws Exception { + Map<String, List<String>> map = new HashMap<String, List<String>>(); + map.put("list", new ArrayList<String>()); + + exchange.getIn().setBody(map); + + assertExpression("${in.body?.get('list')[0].toString}", null); + } + public void testOGNLBodyExpression() throws Exception { exchange.getIn().setBody("hello world"); assertPredicate("${body} == 'hello world'", true);