aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Rosen <joshrosen@databricks.com>2015-08-24 16:17:45 -0700
committerReynold Xin <rxin@databricks.com>2015-08-24 16:17:52 -0700
commita4bad5f25ed41821e36ecab23ec686fcb6071deb (patch)
tree951bcdbaac6b2ad11fb32f4e293f9d4e9880c2b0
parentaadb9de4ce81db420cac0400b6de5bcc82c4ebe4 (diff)
downloadspark-a4bad5f25ed41821e36ecab23ec686fcb6071deb.tar.gz
spark-a4bad5f25ed41821e36ecab23ec686fcb6071deb.tar.bz2
spark-a4bad5f25ed41821e36ecab23ec686fcb6071deb.zip
[SPARK-10190] Fix NPE in CatalystTypeConverters Decimal toScala converter
This adds a missing null check to the Decimal `toScala` converter in `CatalystTypeConverters`, fixing an NPE. Author: Josh Rosen <joshrosen@databricks.com> Closes #8401 from JoshRosen/SPARK-10190. (cherry picked from commit d7b4c095271c36fcc7f9ded267ecf5ec66fac803) Signed-off-by: Reynold Xin <rxin@databricks.com>
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala5
-rw-r--r--sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala4
2 files changed, 7 insertions, 2 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala
index 8d0c64eae4..966623ed01 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala
@@ -329,7 +329,10 @@ object CatalystTypeConverters {
null
}
}
- override def toScala(catalystValue: Decimal): JavaBigDecimal = catalystValue.toJavaBigDecimal
+ override def toScala(catalystValue: Decimal): JavaBigDecimal = {
+ if (catalystValue == null) null
+ else catalystValue.toJavaBigDecimal
+ }
override def toScalaImpl(row: InternalRow, column: Int): JavaBigDecimal =
row.getDecimal(column, dataType.precision, dataType.scale).toJavaBigDecimal
}
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala
index df0f04563e..03bb102c67 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/CatalystTypeConvertersSuite.scala
@@ -32,7 +32,9 @@ class CatalystTypeConvertersSuite extends SparkFunSuite {
IntegerType,
LongType,
FloatType,
- DoubleType)
+ DoubleType,
+ DecimalType.SYSTEM_DEFAULT,
+ DecimalType.USER_DEFAULT)
test("null handling in rows") {
val schema = StructType(simpleTypes.map(t => StructField(t.getClass.getName, t)))