You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by we...@apache.org on 2018/01/11 10:17:42 UTC
spark git commit: [SPARK-23001][SQL] Fix NullPointerException when
DESC a database with NULL description
Repository: spark
Updated Branches:
refs/heads/master a6647ffbf -> 87c98de8b
[SPARK-23001][SQL] Fix NullPointerException when DESC a database with NULL description
## What changes were proposed in this pull request?
When users' DB description is NULL, users might hit `NullPointerException`. This PR is to fix the issue.
## How was this patch tested?
Added test cases
Author: gatorsmile <ga...@gmail.com>
Closes #20215 from gatorsmile/SPARK-23001.
Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/87c98de8
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/87c98de8
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/87c98de8
Branch: refs/heads/master
Commit: 87c98de8b23f0e978958fc83677fdc4c339b7e6a
Parents: a6647ff
Author: gatorsmile <ga...@gmail.com>
Authored: Thu Jan 11 18:17:34 2018 +0800
Committer: Wenchen Fan <we...@databricks.com>
Committed: Thu Jan 11 18:17:34 2018 +0800
----------------------------------------------------------------------
.../org/apache/spark/sql/hive/client/HiveClientImpl.scala | 2 +-
.../apache/spark/sql/hive/HiveExternalCatalogSuite.scala | 6 ++++++
.../org/apache/spark/sql/hive/client/VersionsSuite.scala | 9 +++++++++
3 files changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/spark/blob/87c98de8/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/HiveClientImpl.scala
----------------------------------------------------------------------
diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/HiveClientImpl.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/HiveClientImpl.scala
index 102f40b..4b923f5 100644
--- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/HiveClientImpl.scala
+++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/client/HiveClientImpl.scala
@@ -330,7 +330,7 @@ private[hive] class HiveClientImpl(
Option(client.getDatabase(dbName)).map { d =>
CatalogDatabase(
name = d.getName,
- description = d.getDescription,
+ description = Option(d.getDescription).getOrElse(""),
locationUri = CatalogUtils.stringToURI(d.getLocationUri),
properties = Option(d.getParameters).map(_.asScala.toMap).orNull)
}.getOrElse(throw new NoSuchDatabaseException(dbName))
http://git-wip-us.apache.org/repos/asf/spark/blob/87c98de8/sql/hive/src/test/scala/org/apache/spark/sql/hive/HiveExternalCatalogSuite.scala
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/HiveExternalCatalogSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/HiveExternalCatalogSuite.scala
index 2e35fde..0a522b6 100644
--- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/HiveExternalCatalogSuite.scala
+++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/HiveExternalCatalogSuite.scala
@@ -107,4 +107,10 @@ class HiveExternalCatalogSuite extends ExternalCatalogSuite {
.filter(_.contains("Num Buckets")).head
assert(bucketString.contains("10"))
}
+
+ test("SPARK-23001: NullPointerException when running desc database") {
+ val catalog = newBasicCatalog()
+ catalog.createDatabase(newDb("dbWithNullDesc").copy(description = null), ignoreIfExists = false)
+ assert(catalog.getDatabase("dbWithNullDesc").description == "")
+ }
}
http://git-wip-us.apache.org/repos/asf/spark/blob/87c98de8/sql/hive/src/test/scala/org/apache/spark/sql/hive/client/VersionsSuite.scala
----------------------------------------------------------------------
diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/client/VersionsSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/client/VersionsSuite.scala
index 94473a0..ff90e9d 100644
--- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/client/VersionsSuite.scala
+++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/client/VersionsSuite.scala
@@ -163,6 +163,15 @@ class VersionsSuite extends SparkFunSuite with Logging {
client.createDatabase(tempDB, ignoreIfExists = true)
}
+ test(s"$version: createDatabase with null description") {
+ withTempDir { tmpDir =>
+ val dbWithNullDesc =
+ CatalogDatabase("dbWithNullDesc", description = null, tmpDir.toURI, Map())
+ client.createDatabase(dbWithNullDesc, ignoreIfExists = true)
+ assert(client.getDatabase("dbWithNullDesc").description == "")
+ }
+ }
+
test(s"$version: setCurrentDatabase") {
client.setCurrentDatabase("default")
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org