aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/ScalaReflection.scala8
1 files changed, 6 insertions, 2 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/ScalaReflection.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/ScalaReflection.scala
index 90698cd572..21b1de1ab9 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/ScalaReflection.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/ScalaReflection.scala
@@ -28,7 +28,11 @@ import org.apache.spark.sql.types._
*/
object ScalaReflection extends ScalaReflection {
val universe: scala.reflect.runtime.universe.type = scala.reflect.runtime.universe
- val mirror: universe.Mirror = universe.runtimeMirror(Thread.currentThread().getContextClassLoader)
+ // Since we are creating a runtime mirror usign the class loader of current thread,
+ // we need to use def at here. So, every time we call mirror, it is using the
+ // class loader of the current thread.
+ override def mirror: universe.Mirror =
+ universe.runtimeMirror(Thread.currentThread().getContextClassLoader)
}
/**
@@ -39,7 +43,7 @@ trait ScalaReflection {
val universe: scala.reflect.api.Universe
/** The mirror used to access types in the universe */
- val mirror: universe.Mirror
+ def mirror: universe.Mirror
import universe._