Updated Branches:
  refs/heads/master 972c71522 -> 724066f40

WICKET-5497 NPE in JsonUtils when the value is null


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/724066f4
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/724066f4
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/724066f4

Branch: refs/heads/master
Commit: 724066f406590a1b383a2476ee9983974f40ab80
Parents: 972c715
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Sun Feb 2 11:20:05 2014 +0100
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Sun Feb 2 11:20:05 2014 +0100

----------------------------------------------------------------------
 .../org/apache/wicket/ajax/json/JsonUtils.java  | 24 ++++++++++----------
 .../apache/wicket/ajax/json/JsonUtilsTest.java  |  6 +++++
 2 files changed, 18 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/724066f4/wicket-core/src/main/java/org/apache/wicket/ajax/json/JsonUtils.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/json/JsonUtils.java 
b/wicket-core/src/main/java/org/apache/wicket/ajax/json/JsonUtils.java
index f4b8a9b..ece4997 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/json/JsonUtils.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/json/JsonUtils.java
@@ -58,23 +58,23 @@ public final class JsonUtils
                                                }
                                        }
                                }
-                               else if (value.getClass().isArray())
+                               else if (value != null)
                                {
-                                       Object[] array = (Object[]) value;
-                                       for (Object v : array)
+                                       if (value.getClass().isArray())
                                        {
-                                               if (v != null)
+                                               Object[] array = (Object[]) 
value;
+                                               for (Object v : array)
                                                {
-                                                       JSONObject object = new 
JSONObject();
-                                                       object.put("name", 
name);
-                                                       object.put("value", v);
-                                                       jsonArray.put(object);
+                                                       if (v != null)
+                                                       {
+                                                               JSONObject 
object = new JSONObject();
+                                                               
object.put("name", name);
+                                                               
object.put("value", v);
+                                                               
jsonArray.put(object);
+                                                       }
                                                }
                                        }
-                               }
-                               else
-                               {
-                                       if (value != null)
+                                       else
                                        {
                                                JSONObject object = new 
JSONObject();
                                                object.put("name", name);

http://git-wip-us.apache.org/repos/asf/wicket/blob/724066f4/wicket-core/src/test/java/org/apache/wicket/ajax/json/JsonUtilsTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/ajax/json/JsonUtilsTest.java 
b/wicket-core/src/test/java/org/apache/wicket/ajax/json/JsonUtilsTest.java
index f127c34..b78003b 100644
--- a/wicket-core/src/test/java/org/apache/wicket/ajax/json/JsonUtilsTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/ajax/json/JsonUtilsTest.java
@@ -56,5 +56,11 @@ public class JsonUtilsTest extends Assert
                Object[] arrayValues = {"arrayValue", 3, null, true};
                map.put("array", arrayValues);
                
assertEquals("[{\"name\":\"array\",\"value\":\"arrayValue\"},{\"name\":\"array\",\"value\":3},{\"name\":\"array\",\"value\":true}]",
 JsonUtils.asArray(map).toString());
+
+               map.clear();
+               map.put("null", null);
+               assertEquals("[]", JsonUtils.asArray(map).toString());
+               map.put("notNull", "notNull");
+               assertEquals("[{\"name\":\"notNull\",\"value\":\"notNull\"}]", 
JsonUtils.asArray(map).toString());
        }
 }

Reply via email to