so [1] fixes it.

i see it as well in

org.apache.sling.launchpad.webapp.integrationtest.util.JsonUtil
org.apache.sling.distribution.it.JsonUtil

guess fixing it there won't hurt

[1] diff --git 
a/contrib/extensions/sling-pipes/src/main/java/org/apache/sling/pipes/internal/JsonUtil.java
b/contrib/extensions/sling-pipes/src/main/java/org/apache/sling/pipes/internal/JsonUtil.java
index 2d669a843c..1f557bf7d6 100644
--- 
a/contrib/extensions/sling-pipes/src/main/java/org/apache/sling/pipes/internal/JsonUtil.java
+++ 
b/contrib/extensions/sling-pipes/src/main/java/org/apache/sling/pipes/internal/JsonUtil.java
@@ -80,6 +80,7 @@ public class JsonUtil {
                 :
                 ((JsonObject) json).entrySet().stream()
                     .map(entry -> new
AbstractMap.SimpleEntry<>(entry.getKey(),unbox(entry.getValue())))
+                    .filter(entry -> entry.getValue() != null)
                     .collect(Collectors.toMap(Entry::getKey,
Entry::getValue)));
     }

2017-09-07 19:54 GMT+02:00 Nicolas Peltier <[email protected]>:
> Hey Karl,
>
> have some weird NPE [0] in sling pipes' JsonUtil when "unboxing" null
> values, but lambda make it hard to debug really :-/
>
> i'm happy to fix it, but should i just create & fix a pipes bug in
> that project, i saw several static unbox in sling project?
>
> is there a plan to have one more central JsonUtil.unbox ?
>
> Nicolas
>
> [0] @Test
> public void unbox() throws Exception {
>     JsonArray array = (JsonArray)
> JsonUtil.parse("[{\"foo\":\"foo\",\"bar\":null}]");
>     Object binding = JsonUtil.unbox(array.get(0));
> }
>
>
> java.lang.NullPointerException
>     at java.util.HashMap.merge(HashMap.java:1224)
>     at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1320)
>     at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
>     at 
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
>     at 
> java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet.lambda$entryConsumer$0(Collections.java:1575)
>     at java.util.Iterator.forEachRemaining(Iterator.java:116)
>     at 
> java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
>     at 
> java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntrySetSpliterator.forEachRemaining(Collections.java:1600)
>     at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
>     at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
>     at 
> java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
>     at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>     at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
>     at 
> org.apache.sling.pipes.internal.JsonUtil.lambda$unbox$1(JsonUtil.java:83)
>     at org.apache.sling.pipes.internal.JsonUtil.unbox(JsonUtil.java:57)
>     at org.apache.sling.pipes.internal.JsonUtil.unbox(JsonUtil.java:76)
>     at 
> org.apache.sling.pipes.internal.JsonUtilTest.unbox(JsonUtilTest.java:17)

Reply via email to