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/25d2f4b8 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/25d2f4b8 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/25d2f4b8
Branch: refs/heads/master Commit: 25d2f4b841fe8309047df15d6a726f0179378a99 Parents: abb08fa 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:54 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/25d2f4b8/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/25d2f4b8/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);