From e70788159c58e65aa15587e4d6b5416509e45754 Mon Sep 17 00:00:00 2001 From: Cheng Lian Date: Mon, 29 Feb 2016 12:54:32 +0800 Subject: [PATCH] Addresses PR comments --- .../org/apache/spark/sql/catalyst/analysis/Analyzer.scala | 3 +++ .../src/test/scala/org/apache/spark/sql/DatasetSuite.scala | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala index 212d190db75a9..876aa0eae0e90 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala @@ -562,6 +562,9 @@ class Analyzer( resolveExpression(unbound, LocalRelation(attributes), throws = true) transform { case n: NewInstance + // If this is an inner class of another class, register the outer object in `OuterScopes`. + // Note that static inner classes (e.g., inner classes within Scala objects) don't need + // outer pointer registration. if n.outerPointer.isEmpty && n.cls.isMemberClass && !Modifier.isStatic(n.cls.getModifiers) => diff --git a/sql/core/src/test/scala/org/apache/spark/sql/DatasetSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/DatasetSuite.scala index 3849a51db5427..33df6375e3aad 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/DatasetSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/DatasetSuite.scala @@ -622,8 +622,7 @@ class DatasetSuite extends QueryTest with SharedSQLContext { Some(1), Some(2), Some(3)) } - test("SPARK-13540 add Scala object to OuterScopes") { - OuterScopes.addOuterScope(OuterObject) + test("SPARK-13540 Dataset of nested class defined in Scala object") { checkAnswer( Seq(OuterObject.InnerClass("foo")).toDS(), OuterObject.InnerClass("foo"))