Fix NPE when using ObjectMap(Reader) Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/9d086440 Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/9d086440 Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/9d086440
Branch: refs/heads/master Commit: 9d086440ead9c596c824f5a04bd5048ba47e6b71 Parents: 9475ed2 Author: JamesBognar <[email protected]> Authored: Wed Jun 14 14:59:43 2017 -0400 Committer: JamesBognar <[email protected]> Committed: Wed Jun 14 15:01:16 2017 -0400 ---------------------------------------------------------------------- .../test/java/org/apache/juneau/ObjectListTest.java | 10 ++++++++++ .../src/test/java/org/apache/juneau/ObjectMapTest.java | 10 ++++++++++ .../src/main/java/org/apache/juneau/ObjectList.java | 13 +++++++++++++ .../src/main/java/org/apache/juneau/ObjectMap.java | 3 ++- 4 files changed, 35 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/9d086440/juneau-core-test/src/test/java/org/apache/juneau/ObjectListTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/ObjectListTest.java b/juneau-core-test/src/test/java/org/apache/juneau/ObjectListTest.java index f387c5e..0f136e6 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/ObjectListTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/ObjectListTest.java @@ -12,8 +12,10 @@ // *************************************************************************************************************************** package org.apache.juneau; +import static org.apache.juneau.TestUtils.*; import static org.junit.Assert.*; +import java.io.*; import java.util.*; import org.junit.*; @@ -96,4 +98,12 @@ public class ObjectListTest { l.deleteAt("2"); assertEquals("[{foo:'bing'},{baz:123}]", l.toString()); } + + //==================================================================================================== + // ObjectList(Reader) + //==================================================================================================== + @Test + public void testFromReader() throws Exception { + assertObjectEquals("[1,2,3]", new ObjectList(new StringReader("[1,2,3]"))); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/9d086440/juneau-core-test/src/test/java/org/apache/juneau/ObjectMapTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/ObjectMapTest.java b/juneau-core-test/src/test/java/org/apache/juneau/ObjectMapTest.java index 5b27e7a..850eef3 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/ObjectMapTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/ObjectMapTest.java @@ -15,6 +15,8 @@ package org.apache.juneau; import static org.apache.juneau.TestUtils.*; import static org.junit.Assert.*; +import java.io.*; + import org.apache.juneau.utils.*; import org.junit.*; @@ -311,4 +313,12 @@ public class ObjectMapTest { m.deleteAt("a/1"); assertEquals("{a:[{b:'d'}]}", m.toString()); } + + //==================================================================================================== + // ObjectMap(Reader) + //==================================================================================================== + @Test + public void testFromReader() throws Exception { + assertObjectEquals("{foo:'bar'}", new ObjectMap(new StringReader("{foo:'bar'}"))); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/9d086440/juneau-core/src/main/java/org/apache/juneau/ObjectList.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/ObjectList.java b/juneau-core/src/main/java/org/apache/juneau/ObjectList.java index a5d6148..0629d3f 100644 --- a/juneau-core/src/main/java/org/apache/juneau/ObjectList.java +++ b/juneau-core/src/main/java/org/apache/juneau/ObjectList.java @@ -162,9 +162,22 @@ public class ObjectList extends LinkedList<Object> { * @throws IOException If a problem occurred trying to read from the reader. */ public ObjectList(Reader r, Parser p) throws ParseException, IOException { + this(p == null ? BeanContext.DEFAULT.createSession() : p.getBeanContext().createSession()); parseReader(r, p); } + /** + * Shortcut for <code><jk>new</jk> ObjectList(reader, JsonParser.<jsf>DEFAULT</jsf>)</code>. + * + * @param r The reader to read from. The reader will be wrapped in a {@link BufferedReader} if it isn't already. + * @throws ParseException If the input contains a syntax error or is malformed. + * @throws IOException If a problem occurred trying to read from the reader. + */ + public ObjectList(Reader r) throws ParseException, IOException { + this(BeanContext.DEFAULT.createSession()); + parseReader(r, JsonParser.DEFAULT); + } + private void parseReader(Reader r, Parser p) throws ParseException { if (p == null) p = JsonParser.DEFAULT; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/9d086440/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java b/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java index 3f6fe6f..110c84d 100644 --- a/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java +++ b/juneau-core/src/main/java/org/apache/juneau/ObjectMap.java @@ -173,6 +173,7 @@ public class ObjectMap extends LinkedHashMap<String,Object> { * @throws IOException If a problem occurred trying to read from the reader. */ public ObjectMap(Reader r, Parser p) throws ParseException, IOException { + this(p == null ? BeanContext.DEFAULT.createSession() : p.getBeanContext().createSession()); parseReader(r, p); } @@ -184,6 +185,7 @@ public class ObjectMap extends LinkedHashMap<String,Object> { * @throws IOException If a problem occurred trying to read from the reader. */ public ObjectMap(Reader r) throws ParseException, IOException { + this(BeanContext.DEFAULT.createSession()); parseReader(r, JsonParser.DEFAULT); } @@ -206,7 +208,6 @@ public class ObjectMap extends LinkedHashMap<String,Object> { * @param session The bean session to use for creating beans. */ public ObjectMap(BeanSession session) { - super(); this.session = session; }
