From c84cfc65d3f8c7f6de5e70af7ef05fb2f1174d54 Mon Sep 17 00:00:00 2001 From: dmitriy Date: Thu, 13 Oct 2016 18:01:55 -0400 Subject: [PATCH] CAMEL-10386: array size > 0 to enable nullsafe empty list expressions --- .../org/apache/camel/language/bean/BeanExpression.java | 2 +- .../org/apache/camel/language/simple/SimpleTest.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) 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 7ebf3d389c040..031f556cf4f45 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 @@ private Object lookupResult(Exchange exchange, String key, Object result, boolea } } } - 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) { 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 f0bb9b9f3d962..2e581950a7e6c 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 void testOGNLBodyListAndMap() throws Exception { assertExpression("${body[0][code]}", 4321); } + public void testOGNLBodyEmptyList() throws Exception { + Map> map = new HashMap>(); + map.put("list", new ArrayList()); + + 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);