aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWeiqing Yang <yangweiqing001@gmail.com>2016-09-28 20:20:03 -0500
committerTom Graves <tgraves@yahoo-inc.com>2016-09-28 20:20:03 -0500
commit7dfad4b132bc46263ef788ced4a935862f5c8756 (patch)
treec670730a88cbe611b7f1850d5105c8c74985c2e7
parent7d09232028967978d9db314ec041a762599f636b (diff)
downloadspark-7dfad4b132bc46263ef788ced4a935862f5c8756.tar.gz
spark-7dfad4b132bc46263ef788ced4a935862f5c8756.tar.bz2
spark-7dfad4b132bc46263ef788ced4a935862f5c8756.zip
[SPARK-17710][HOTFIX] Fix ClassCircularityError in ReplSuite tests in Maven build: use 'Class.forName' instead of 'Utils.classForName'
## What changes were proposed in this pull request? Fix ClassCircularityError in ReplSuite tests when Spark is built by Maven build. ## How was this patch tested? (1) ``` build/mvn -DskipTests -Phadoop-2.3 -Pyarn -Phive -Phive-thriftserver -Pkinesis-asl -Pmesos clean package ``` Then test: ``` build/mvn -Dtest=none -DwildcardSuites=org.apache.spark.repl.ReplSuite test ``` ReplSuite tests passed (2) Manual Tests against some Spark applications in Yarn client mode and Yarn cluster mode. Need to check if spark caller contexts are written into HDFS hdfs-audit.log and Yarn RM audit log successfully. Author: Weiqing Yang <yangweiqing001@gmail.com> Closes #15286 from Sherry302/SPARK-16757.
-rw-r--r--core/src/main/scala/org/apache/spark/util/Utils.scala6
1 files changed, 4 insertions, 2 deletions
diff --git a/core/src/main/scala/org/apache/spark/util/Utils.scala b/core/src/main/scala/org/apache/spark/util/Utils.scala
index caa768cfbd..f3493bd96b 100644
--- a/core/src/main/scala/org/apache/spark/util/Utils.scala
+++ b/core/src/main/scala/org/apache/spark/util/Utils.scala
@@ -2489,8 +2489,10 @@ private[spark] class CallerContext(
def setCurrentContext(): Boolean = {
var succeed = false
try {
- val callerContext = Utils.classForName("org.apache.hadoop.ipc.CallerContext")
- val Builder = Utils.classForName("org.apache.hadoop.ipc.CallerContext$Builder")
+ // scalastyle:off classforname
+ val callerContext = Class.forName("org.apache.hadoop.ipc.CallerContext")
+ val Builder = Class.forName("org.apache.hadoop.ipc.CallerContext$Builder")
+ // scalastyle:on classforname
val builderInst = Builder.getConstructor(classOf[String]).newInstance(context)
val hdfsContext = Builder.getMethod("build").invoke(builderInst)
callerContext.getMethod("setCurrent", callerContext).invoke(null, hdfsContext)