From e83c9bc87acc794ca3e9a37c999c05550d425e2b Mon Sep 17 00:00:00 2001 From: Rajesh Balamohan Date: Mon, 25 Apr 2016 18:39:58 +0530 Subject: [PATCH] [SPARK-14752][SQL] LazilyGenerateOrdering throws NullPointerException with TakeOrderedAndProject --- .../sql/catalyst/expressions/codegen/GenerateOrdering.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/GenerateOrdering.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/GenerateOrdering.scala index 5635c91830f4..d6e3e0060b09 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/GenerateOrdering.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/GenerateOrdering.scala @@ -154,12 +154,14 @@ class LazilyGeneratedOrdering(val ordering: Seq[SortOrder]) extends Ordering[Int private[this] var generatedOrdering = GenerateOrdering.generate(ordering) def compare(a: InternalRow, b: InternalRow): Int = { + if (generatedOrdering == null) { + generatedOrdering = GenerateOrdering.generate(ordering) + } generatedOrdering.compare(a, b) } private def readObject(in: ObjectInputStream): Unit = Utils.tryOrIOException { in.defaultReadObject() - generatedOrdering = GenerateOrdering.generate(ordering) } }