diff --git a/src/main/scala/org/apache/spark/KyuubiFirstClassLoader.scala b/src/main/scala/org/apache/spark/KyuubiFirstClassLoader.scala index 15e387281..85b82a261 100644 --- a/src/main/scala/org/apache/spark/KyuubiFirstClassLoader.scala +++ b/src/main/scala/org/apache/spark/KyuubiFirstClassLoader.scala @@ -35,7 +35,7 @@ private[spark] class KyuubiFirstClassLoader(urls: Array[URL], parent: ClassLoade override def loadClass(name: String, resolve: Boolean): Class[_] = { try { - super.loadClass(name, true) + super.loadClass(name, resolve) } catch { case _: ClassNotFoundException => parentClassLoader.loadClass(name, resolve) diff --git a/src/main/scala/org/apache/spark/KyuubiSparkUtil.scala b/src/main/scala/org/apache/spark/KyuubiSparkUtil.scala index b080b93a0..af5c5ed0c 100644 --- a/src/main/scala/org/apache/spark/KyuubiSparkUtil.scala +++ b/src/main/scala/org/apache/spark/KyuubiSparkUtil.scala @@ -75,7 +75,10 @@ object KyuubiSparkUtil extends Logging { // get kyuubi jar val url = this.getClass.getProtectionDomain.getCodeSource.getLocation info(s"Initializing KyuubiFirstClassLoader instance with url $url as first class members") - new KyuubiFirstClassLoader(Array(url), getContextOrSparkClassLoader()) + val classLoader = new KyuubiFirstClassLoader(Array(url), getContextOrSparkClassLoader()) + classLoader.loadClass("org.apache.spark.SparkEnv", true) + classLoader.loadClass("org.apache.spark.SparkEnv$", true) + classLoader } def addShutdownHook(f: () => Unit): Unit = {