You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/06/14 19:01:19 UTC

[1/2] incubator-juneau git commit: Fix possible NPEs in Calendar and Date swaps.

Repository: incubator-juneau
Updated Branches:
  refs/heads/master d5ba83970 -> 9d086440e


Fix possible NPEs in Calendar and Date swaps.

Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/9475ed21
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/9475ed21
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/9475ed21

Branch: refs/heads/master
Commit: 9475ed212e035be5e6eeb681b000cfbd98f83bc1
Parents: d5ba839
Author: JamesBognar <ja...@apache.org>
Authored: Wed Jun 14 14:56:53 2017 -0400
Committer: JamesBognar <ja...@apache.org>
Committed: Wed Jun 14 15:00:33 2017 -0400

----------------------------------------------------------------------
 .../java/org/apache/juneau/transforms/CalendarSwap.java   | 10 ++++++++++
 .../java/org/apache/juneau/transforms/DateLongSwap.java   |  2 ++
 .../java/org/apache/juneau/transforms/DateMapSwap.java    |  2 ++
 .../main/java/org/apache/juneau/transforms/DateSwap.java  | 10 ++++++++++
 4 files changed, 24 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/9475ed21/juneau-core/src/main/java/org/apache/juneau/transforms/CalendarSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transforms/CalendarSwap.java b/juneau-core/src/main/java/org/apache/juneau/transforms/CalendarSwap.java
index 9f45498..02294ab 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transforms/CalendarSwap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transforms/CalendarSwap.java
@@ -142,6 +142,8 @@ public class CalendarSwap extends StringSwap<Calendar> {
 
 		@Override /* PojoSwap */
 		public String swap(BeanSession session, Calendar o) {
+			if (o == null)
+				return null;
 			o = setTimeZone(session, o);
 			return DatatypeConverter.printDateTime(o);
 		}
@@ -173,6 +175,8 @@ public class CalendarSwap extends StringSwap<Calendar> {
 
 		@Override /* PojoSwap */
 		public String swap(BeanSession session, Calendar o) {
+			if (o == null)
+				return null;
 			if (o.getTimeZone().getRawOffset() != 0) {
 				Calendar c = Calendar.getInstance(GMT);
 				c.setTime(o.getTime());
@@ -192,6 +196,8 @@ public class CalendarSwap extends StringSwap<Calendar> {
 
 		@Override /* PojoSwap */
 		public String swap(BeanSession session, Calendar o) {
+			if (o == null)
+				return null;
 			String s = super.swap(session, o);
 			return String.format("%s.%03d%s", s.substring(0, 19), o.get(Calendar.MILLISECOND), s.substring(19));
 		}
@@ -207,6 +213,8 @@ public class CalendarSwap extends StringSwap<Calendar> {
 
 		@Override /* PojoSwap */
 		public String swap(BeanSession session, Calendar o) {
+			if (o == null)
+				return null;
 			String s = super.swap(session, o);
 			return String.format("%s.%03d%s", s.substring(0, 19), o.get(Calendar.MILLISECOND), s.substring(19));
 		}
@@ -552,6 +560,8 @@ public class CalendarSwap extends StringSwap<Calendar> {
 	 */
 	@Override /* PojoSwap */
 	public String swap(BeanSession session, Calendar o) {
+		if (o == null)
+			return null;
 		return getDateFormat(session, o).format(o.getTime());
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/9475ed21/juneau-core/src/main/java/org/apache/juneau/transforms/DateLongSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transforms/DateLongSwap.java b/juneau-core/src/main/java/org/apache/juneau/transforms/DateLongSwap.java
index 11d4a03..9316280 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transforms/DateLongSwap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transforms/DateLongSwap.java
@@ -28,6 +28,8 @@ public class DateLongSwap extends PojoSwap<Date,Long> {
 	 */
 	@Override /* PojoSwap */
 	public Long swap(BeanSession session, Date o) {
+		if (o == null)
+			return null;
 		return o.getTime();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/9475ed21/juneau-core/src/main/java/org/apache/juneau/transforms/DateMapSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transforms/DateMapSwap.java b/juneau-core/src/main/java/org/apache/juneau/transforms/DateMapSwap.java
index b882dc0..fcaafe0 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transforms/DateMapSwap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transforms/DateMapSwap.java
@@ -29,6 +29,8 @@ public class DateMapSwap extends PojoSwap<Date,Map> {
 	 */
 	@Override /* PojoSwap */
 	public Map swap(BeanSession session, Date o) {
+		if (o == null)
+			return null;
 		ObjectMap m = new ObjectMap();
 		m.put("time", o.getTime());
 		return m;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/9475ed21/juneau-core/src/main/java/org/apache/juneau/transforms/DateSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transforms/DateSwap.java b/juneau-core/src/main/java/org/apache/juneau/transforms/DateSwap.java
index b2fb0b0..3de5ba3 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transforms/DateSwap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transforms/DateSwap.java
@@ -141,6 +141,8 @@ public class DateSwap extends StringSwap<Date> {
 
 		@Override /* PojoSwap */
 		public String swap(BeanSession session, Date o) {
+			if (o == null)
+				return null;
 			Calendar c = new GregorianCalendar();
 			c.setTime(o);
 			c = setTimeZone(session, c);
@@ -174,6 +176,8 @@ public class DateSwap extends StringSwap<Date> {
 
 		@Override /* PojoSwap */
 		public String swap(BeanSession session, Date o) {
+			if (o == null)
+				return null;
 			Calendar c = new GregorianCalendar();
 			c.setTime(o);
 			if (c.getTimeZone().getRawOffset() != 0) {
@@ -195,6 +199,8 @@ public class DateSwap extends StringSwap<Date> {
 
 		@Override /* PojoSwap */
 		public String swap(BeanSession session, Date o) {
+			if (o == null)
+				return null;
 			Calendar c = new GregorianCalendar();
 			c.setTime(o);
 			String s = super.swap(session, o);
@@ -212,6 +218,8 @@ public class DateSwap extends StringSwap<Date> {
 
 		@Override /* PojoSwap */
 		public String swap(BeanSession session, Date o) {
+			if (o == null)
+				return null;
 			Calendar c = new GregorianCalendar();
 			c.setTime(o);
 			String s = super.swap(session, o);
@@ -553,6 +561,8 @@ public class DateSwap extends StringSwap<Date> {
 	 */
 	@Override /* PojoSwap */
 	public String swap(BeanSession session, Date o) {
+		if (o == null)
+			return null;
 		return getDateFormat(session).format(o.getTime());
 	}
 


[2/2] incubator-juneau git commit: Fix NPE when using ObjectMap(Reader)

Posted by ja...@apache.org.
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 <ja...@apache.org>
Authored: Wed Jun 14 14:59:43 2017 -0400
Committer: JamesBognar <ja...@apache.org>
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;
 	}