diff options
author | Josh Rosen <joshrosen@databricks.com> | 2015-08-24 16:17:45 -0700 |
---|---|---|
committer | Reynold Xin <rxin@databricks.com> | 2015-08-24 16:17:45 -0700 |
commit | d7b4c095271c36fcc7f9ded267ecf5ec66fac803 (patch) | |
tree | 79e6d37c593ce1dc5403fd1d8a051fa8ba1177a9 /sql/catalyst/src | |
parent | 13db11cb08eb90eb0ea3402c9fe0270aa282f247 (diff) | |
download | spark-d7b4c095271c36fcc7f9ded267ecf5ec66fac803.tar.gz spark-d7b4c095271c36fcc7f9ded267ecf5ec66fac803.tar.bz2 spark-d7b4c095271c36fcc7f9ded267ecf5ec66fac803.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.
Diffstat (limited to 'sql/catalyst/src')
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))) |