This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.pipes-0.0.10 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-pipes.git
commit 6d828c6fda65686566c54579adc531c3e62fdf27 Author: Robert Munteanu <[email protected]> AuthorDate: Fri Jan 15 15:29:37 2016 +0000 SLING-5431 - PipeBinding NPE when evaluating null expression Submitted-By: Nicolas Peltier git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/sling-pipes@1724841 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/sling/pipes/PipeBindings.java | 2 +- .../org/apache/sling/pipes/PipeBindingsTest.java | 24 ++++++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/apache/sling/pipes/PipeBindings.java b/src/main/java/org/apache/sling/pipes/PipeBindings.java index 6cb4ac2..0331d48 100644 --- a/src/main/java/org/apache/sling/pipes/PipeBindings.java +++ b/src/main/java/org/apache/sling/pipes/PipeBindings.java @@ -227,7 +227,7 @@ public class PipeBindings { public Object instantiateObject(String expr){ try { Object result = evaluate(expr); - if (! result.getClass().getName().startsWith("java.lang.")) { + if (result != null && ! result.getClass().getName().startsWith("java.lang.")) { //special case of the date in which case jdk.nashorn.api.scripting.ScriptObjectMirror will //be returned JsDate jsDate = ((Invocable) engine).getInterface(result, JsDate.class); diff --git a/src/test/java/org/apache/sling/pipes/PipeBindingsTest.java b/src/test/java/org/apache/sling/pipes/PipeBindingsTest.java index 5403e99..8e548f6 100644 --- a/src/test/java/org/apache/sling/pipes/PipeBindingsTest.java +++ b/src/test/java/org/apache/sling/pipes/PipeBindingsTest.java @@ -41,10 +41,14 @@ public class PipeBindingsTest extends AbstractPipeTest { context.load().json("/container.json", PATH_PIPE); } + private PipeBindings getDummyTreeBinding(){ + Resource resource = context.resourceResolver().getResource(PATH_PIPE + "/" + ContainerPipeTest.NN_DUMMYTREE); + return new PipeBindings(resource); + } + @Test public void testEvaluateSimpleString() throws ScriptException { - Resource resource = context.resourceResolver().getResource(PATH_PIPE + "/" + ContainerPipeTest.NN_DUMMYTREE); - PipeBindings bindings = new PipeBindings(resource); + PipeBindings bindings = getDummyTreeBinding(); String simple = "simple string"; String evaluated = (String)bindings.evaluate(simple); assertEquals("evaluated should be the same than input", evaluated, simple); @@ -52,8 +56,7 @@ public class PipeBindingsTest extends AbstractPipeTest { @Test public void computeEcma5Expression() { - Resource resource = context.resourceResolver().getResource(PATH_PIPE + "/" + ContainerPipeTest.NN_DUMMYTREE); - PipeBindings bindings = new PipeBindings(resource); + PipeBindings bindings = getDummyTreeBinding(); Map<String,String> expressions = new HashMap<>(); expressions.put("blah ${blah} blah", "'blah ' + blah + ' blah'"); expressions.put("${blah}", "blah"); @@ -68,8 +71,7 @@ public class PipeBindingsTest extends AbstractPipeTest { @Test public void testInstantiateExpression() throws Exception { - Resource resource = context.resourceResolver().getResource(PATH_PIPE + "/" + ContainerPipeTest.NN_DUMMYTREE); - PipeBindings bindings = new PipeBindings(resource); + PipeBindings bindings = getDummyTreeBinding(); Map<String, String> testMap = new HashMap<>(); testMap.put("a", "apricots"); testMap.put("b", "bananas"); @@ -79,9 +81,15 @@ public class PipeBindingsTest extends AbstractPipeTest { } @Test + public void testEvaluateNull() throws Exception { + PipeBindings bindings = getDummyTreeBinding(); + assertNull("${null} object should be instantiated as null", bindings.instantiateObject("${null}")); + assertNull("${null} expression should be instantiated as null", bindings.instantiateExpression("${null}")); + } + + @Test public void testInstantiateObject() throws Exception { - Resource resource = context.resourceResolver().getResource(PATH_PIPE + "/" + ContainerPipeTest.NN_DUMMYTREE); - PipeBindings bindings = new PipeBindings(resource); + PipeBindings bindings = getDummyTreeBinding(); Map<String, String> testMap = new HashMap<>(); testMap.put("a", "apricots"); testMap.put("b", "bananas"); -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
