Unified handling of empty input: return always null
[maven-thymeleaf-skin] / src / main / java / de / juplo / jackson / SimpleMapper.java
index f15bf25..3dd5509 100644 (file)
@@ -5,7 +5,6 @@ import com.fasterxml.jackson.core.JsonLocation;
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonToken;
 import java.io.IOException;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
@@ -15,7 +14,6 @@ import java.util.Map.Entry;
 import java.util.NoSuchElementException;
 import java.util.Spliterator;
 import static java.util.Spliterator.IMMUTABLE;
-import java.util.Spliterators;
 import java.util.function.Consumer;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
@@ -41,10 +39,7 @@ public abstract class SimpleMapper
     JsonToken token = parser.nextToken();
 
     if (token == null)
-    {
-      LOG.warn("empty input");
-      return Spliterators.emptySpliterator();
-    }
+      return null;
 
     if (!JsonToken.START_ARRAY.equals(token))
       fail(parser, "The root-element must be an array!");
@@ -117,14 +112,7 @@ public abstract class SimpleMapper
         if (next != null)
           return true;
 
-        return spliterator.tryAdvance(new Consumer<Object>()
-        {
-          @Override
-          public void accept(Object o)
-          {
-            next = o;
-          }
-        });
+        return spliterator.tryAdvance((Object o) -> { next = o; });
       }
 
       @Override
@@ -147,10 +135,7 @@ public abstract class SimpleMapper
     JsonToken token = parser.nextToken();
 
     if (token == null)
-    {
-      LOG.warn("empty input");
-      return Spliterators.emptySpliterator();
-    }
+      return null;
 
     if (!JsonToken.START_OBJECT.equals(token))
       fail(parser, "The root-element must be an object!");
@@ -249,14 +234,7 @@ public abstract class SimpleMapper
         if (next != null)
           return true;
 
-        return spliterator.tryAdvance(new Consumer<Entry<String, Object>>()
-        {
-          @Override
-          public void accept(Entry<String, Object> e)
-          {
-            next = e;
-          }
-        });
+        return spliterator.tryAdvance((Entry<String, Object> e) -> { next = e; });
       }
 
       @Override
@@ -277,10 +255,7 @@ public abstract class SimpleMapper
     JsonToken token = parser.nextToken();
 
     if (token == null)
-    {
-      LOG.warn("empty input");
-      return Collections.EMPTY_LIST;
-    }
+      return null;
 
     if (!JsonToken.START_ARRAY.equals(token))
       fail(parser, "The root-element must be an array!");
@@ -298,10 +273,7 @@ public abstract class SimpleMapper
     JsonToken token = parser.nextToken();
 
     if (token == null)
-    {
-      LOG.warn("empty input");
-      return Collections.EMPTY_MAP;
-    }
+      return null;
 
     if (!JsonToken.START_OBJECT.equals(token))
       fail(parser, "The root-element must be an object!");
@@ -319,10 +291,7 @@ public abstract class SimpleMapper
     JsonToken token = parser.nextToken();
 
     if (token == null)
-    {
-      LOG.warn("empty input");
       return null;
-    }
 
     switch (token)
     {
@@ -346,7 +315,10 @@ public abstract class SimpleMapper
   {
     JsonToken token = parser.getCurrentToken();
     if (token == null)
+    {
       fail(parser, "unexpected EOF");
+      return null; // << Will never be reached, because fail always throws an exception
+    }
 
     switch (token)
     {
@@ -360,7 +332,7 @@ public abstract class SimpleMapper
       case VALUE_NULL:         return null;
     }
 
-    fail(parser, "unexpected token " + token.toString());
+    fail(parser, "unexpected token " + token);
     return null; // << Will never be reached, because fail always throws an exception
   }