Author: lindner
Date: Wed Mar 25 01:24:03 2009
New Revision: 758115

URL: http://svn.apache.org/viewvc?rev=758115&view=rev
Log:
SHINDIG-993 | Patch from Aaron Evans | beanJsonConverter throws NPE when 
converting empty map to object

Modified:
    
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java
    
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/BeanJsonConverterTest.java

Modified: 
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java?rev=758115&r1=758114&r2=758115&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java
 (original)
+++ 
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java
 Wed Mar 25 01:24:03 2009
@@ -40,6 +40,7 @@
 import java.lang.reflect.Type;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -229,6 +230,9 @@
 
   private Map<String, Object> convertToMap(JSONObject in, Type type) {
     Map<String, Object> out = new HashMap<String, Object>(in.length(), 1);
+    if(in.length() == 0)
+      return Collections.emptyMap();
+
     for (String name : JSONObject.getNames(in)) {
       out.put(name, convertToObject(in.opt(name), type));
     }

Modified: 
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/BeanJsonConverterTest.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/BeanJsonConverterTest.java?rev=758115&r1=758114&r2=758115&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/BeanJsonConverterTest.java
 (original)
+++ 
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/conversion/BeanJsonConverterTest.java
 Wed Mar 25 01:24:03 2009
@@ -174,4 +174,11 @@
     assertEquals(Arrays.asList(0, 1, 2), data.get("key0"));
     assertEquals(Arrays.asList(3, 4, 5), data.get("key1"));
   }
+
+  public void testEmptyJsonMap() throws Exception {
+    String emptyMap = "{}";
+    Map<String, String> data = beanJsonConverter.convertToObject(emptyMap, 
+         new TypeLiteral<Map<String,String>>(){}.getType());
+    assertTrue(data.size() == 0);
+  }
 }


Reply via email to