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;
}