You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:56:49 UTC
[sling-org-apache-sling-pipes] 05/31: SLING-5431 - PipeBinding NPE
when evaluating null expression
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 <ro...@apache.org>
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
"commits@sling.apache.org" <co...@sling.apache.org>.