You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by rb...@apache.org on 2013/11/12 23:26:42 UTC
svn commit: r1541274 - in /shindig/trunk/java/common/src:
main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java
test/java/org/apache/shindig/protocol/conversion/BeanJsonConverterTest.java
Author: rbaxter85
Date: Tue Nov 12 22:26:41 2013
New Revision: 1541274
URL: http://svn.apache.org/r1541274
Log:
BeanJsonConverter fails with NullPointerException for empty ExtendableBeans
SHINDIG-1941
Committed For Andreas Kohn
Modified:
shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java
shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/BeanJsonConverterTest.java
Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java?rev=1541274&r1=1541273&r2=1541274&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java Tue Nov 12 22:26:41 2013
@@ -265,8 +265,11 @@ public class BeanJsonConverter implement
* will support arbitrary mappings to JSON & XML.
*/
if (ExtendableBean.class.isAssignableFrom(type)) {
- for (String name : JSONObject.getNames(in)) {
- ((ExtendableBean) out).put(name, convertToObject(in.opt(name), null));
+ String[] names = JSONObject.getNames(in);
+ if (names != null) {
+ for (String name : names) {
+ ((ExtendableBean) out).put(name, convertToObject(in.opt(name), null));
+ }
}
}
Modified: shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/BeanJsonConverterTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/BeanJsonConverterTest.java?rev=1541274&r1=1541273&r2=1541274&view=diff
==============================================================================
--- shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/BeanJsonConverterTest.java (original)
+++ shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/BeanJsonConverterTest.java Tue Nov 12 22:26:41 2013
@@ -18,6 +18,7 @@
*/
package org.apache.shindig.protocol.conversion;
+import org.apache.shindig.protocol.model.ExtendableBean;
import org.apache.shindig.protocol.model.Model;
import com.google.common.collect.ImmutableMap;
@@ -32,6 +33,7 @@ import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -76,6 +78,10 @@ public class BeanJsonConverterTest exten
}
}
+ public static class ExtendableTestObject extends HashMap<String, Object> implements ExtendableBean {
+ private static final long serialVersionUID = 1L;
+ }
+
@Test
public void testJsonToObject() throws Exception {
String json = '{' +
@@ -188,4 +194,12 @@ public class BeanJsonConverterTest exten
new TypeLiteral<Map<String,String>>(){}.getType());
assertTrue(data.isEmpty());
}
+
+ @Test
+ public void testEmptyExtendableBean() throws Exception {
+ String emptyMap = "{}";
+ ExtendableTestObject data = beanJsonConverter.convertToObject(emptyMap,
+ ExtendableTestObject.class);
+ assertTrue(data.isEmpty());
+ }
}