Repository: spark
Updated Branches:
  refs/heads/branch-2.3 0058986de -> 8236f6497


[SPARK-26198][SQL] Fix Metadata serialize null values throw NPE

How to reproduce this issue:
```scala
scala> val meta = new 
org.apache.spark.sql.types.MetadataBuilder().putNull("key").build().json
java.lang.NullPointerException
  at 
org.apache.spark.sql.types.Metadata$.org$apache$spark$sql$types$Metadata$$toJsonValue(Metadata.scala:196)
  at org.apache.spark.sql.types.Metadata$$anonfun$1.apply(Metadata.scala:180)
```

This pr fix `NullPointerException` when `Metadata` serialize `null` values.

unit tests

Closes #23164 from wangyum/SPARK-26198.

Authored-by: Yuming Wang <yumw...@ebay.com>
Signed-off-by: Sean Owen <sean.o...@databricks.com>
(cherry picked from commit 676bbb2446af1f281b8f76a5428b7ba75b7588b3)
Signed-off-by: Sean Owen <sean.o...@databricks.com>


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/8236f649
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/8236f649
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/8236f649

Branch: refs/heads/branch-2.3
Commit: 8236f649762fd953626e7d14eb5b5dd544ab38cc
Parents: 0058986
Author: Yuming Wang <yumw...@ebay.com>
Authored: Sun Dec 2 08:52:01 2018 -0600
Committer: Sean Owen <sean.o...@databricks.com>
Committed: Sun Dec 2 23:44:00 2018 -0600

----------------------------------------------------------------------
 .../src/main/scala/org/apache/spark/sql/types/Metadata.scala       | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/8236f649/sql/catalyst/src/main/scala/org/apache/spark/sql/types/Metadata.scala
----------------------------------------------------------------------
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/types/Metadata.scala 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/types/Metadata.scala
index 352fb54..bcdc863 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/types/Metadata.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/types/Metadata.scala
@@ -190,6 +190,8 @@ object Metadata {
         JBool(x)
       case x: String =>
         JString(x)
+      case null =>
+        JNull
       case x: Metadata =>
         toJsonValue(x.map)
       case other =>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to