You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ro...@apache.org on 2013/05/14 01:27:53 UTC

svn commit: r1482145 - in /pig/trunk: CHANGES.txt src/org/apache/pig/builtin/JsonLoader.java src/org/apache/pig/builtin/JsonStorage.java test/org/apache/pig/test/data/jsonStorage1.result test/org/apache/pig/test/data/jsonStorage1.txt

Author: rohini
Date: Mon May 13 23:27:53 2013
New Revision: 1482145

URL: http://svn.apache.org/r1482145
Log:
PIG:3302: JSONStorage throws NPE if map has null values (rohini)

Modified:
    pig/trunk/CHANGES.txt
    pig/trunk/src/org/apache/pig/builtin/JsonLoader.java
    pig/trunk/src/org/apache/pig/builtin/JsonStorage.java
    pig/trunk/test/org/apache/pig/test/data/jsonStorage1.result
    pig/trunk/test/org/apache/pig/test/data/jsonStorage1.txt

Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1482145&r1=1482144&r2=1482145&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Mon May 13 23:27:53 2013
@@ -176,6 +176,8 @@ PIG-3013: BinInterSedes improve chararra
 
 BUG FIXES
 
+PIG:3302: JSONStorage throws NPE if map has null values (rohini)
+
 PIG-3309: TestJsonLoaderStorage fails with IBM JDK 6/7 (lrangel via daijy)
 
 PIG-3097: HiveColumnarLoader doesn't correctly load partitioned Hive table (maczech via daijy)

Modified: pig/trunk/src/org/apache/pig/builtin/JsonLoader.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/JsonLoader.java?rev=1482145&r1=1482144&r2=1482145&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/JsonLoader.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/JsonLoader.java Mon May 13 23:27:53 2013
@@ -225,7 +225,7 @@ public class JsonLoader extends LoadFunc
             Map<String, String> m = new HashMap<String, String>();
             while (p.nextToken() != JsonToken.END_OBJECT) {
                 String k = p.getCurrentName();
-                String v = p.getText();
+                String v = p.getCurrentToken() == JsonToken.VALUE_NULL ? null : p.getText();
                 m.put(k, v);
             }
             return m;

Modified: pig/trunk/src/org/apache/pig/builtin/JsonStorage.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/JsonStorage.java?rev=1482145&r1=1482144&r2=1482145&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/JsonStorage.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/JsonStorage.java Mon May 13 23:27:53 2013
@@ -199,7 +199,7 @@ public class JsonStorage extends StoreFu
             json.writeFieldName(field.getName());
             json.writeStartObject();
             for (Map.Entry<String, Object> e : ((Map<String, Object>)d).entrySet()) {
-                json.writeStringField(e.getKey(), e.getValue().toString());
+                json.writeStringField(e.getKey(), e.getValue() == null ? null : e.getValue().toString());
             }
             json.writeEndObject();
             return;

Modified: pig/trunk/test/org/apache/pig/test/data/jsonStorage1.result
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/data/jsonStorage1.result?rev=1482145&r1=1482144&r2=1482145&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/data/jsonStorage1.result (original)
+++ pig/trunk/test/org/apache/pig/test/data/jsonStorage1.result Mon May 13 23:27:53 2013
@@ -1,2 +1,2 @@
 {"a0":1,"a1":[{"a10":1,"a11":"tom"},{"a10":2,"a11":"jerry"}],"a2":{"a20":1.01,"a21":"sun"},"a3":{"key3":"c","key2":"b","key1":"a"}}
-{"a0":2,"a1":[{"a10":6,"a11":"cat"},{"a10":7,"a11":"dog"},{"a10":8,"a11":"pig"}],"a2":{"a20":2.3,"a21":"moon"},"a3":{"key4":"value4","key1":"value1"}}
+{"a0":2,"a1":[{"a10":6,"a11":"cat"},{"a10":7,"a11":"dog"},{"a10":8,"a11":"pig"}],"a2":{"a20":2.3,"a21":"moon"},"a3":{"key4":"value4","key1":"value1","key2":null}}

Modified: pig/trunk/test/org/apache/pig/test/data/jsonStorage1.txt
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/data/jsonStorage1.txt?rev=1482145&r1=1482144&r2=1482145&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/data/jsonStorage1.txt (original)
+++ pig/trunk/test/org/apache/pig/test/data/jsonStorage1.txt Mon May 13 23:27:53 2013
@@ -1,2 +1,2 @@
 1	{(1,tom),(2,jerry)}	(1.01,sun)	[key3#c,key2#b,key1#a]
-2	{(6,cat),(7,dog),(8,pig)}	(2.3,moon)	[key4#value4,key1#value1]
+2	{(6,cat),(7,dog),(8,pig)}	(2.3,moon)	[key4#value4,key1#value1,key2#]