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);

Reply via email to