From 4d3ea92f4fe4be2a0ee9849c65cb1c91b0c5711b Mon Sep 17 00:00:00 2001 From: Sangjin Lee Date: Thu, 11 Aug 2016 19:56:58 -0700 Subject: [PATCH] HADOOP-13410. RunJar adds the content of the jar twice to the classpath (Yuanbo Liu via sjlee) --- .../src/main/java/org/apache/hadoop/util/RunJar.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/RunJar.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/RunJar.java index 19b51ad692a..d91a78b8b20 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/RunJar.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/RunJar.java @@ -226,7 +226,7 @@ public class RunJar { unJar(file, workDir); - ClassLoader loader = createClassLoader(file, workDir); + ClassLoader loader = createClassLoader(workDir); Thread.currentThread().setContextClassLoader(loader); Class mainClass = Class.forName(mainClassName, true, loader); @@ -250,14 +250,13 @@ public class RunJar { * the user jar as well as the HADOOP_CLASSPATH. Otherwise, it creates a * classloader that simply adds the user jar to the classpath. */ - private ClassLoader createClassLoader(File file, final File workDir) + private ClassLoader createClassLoader(final File workDir) throws MalformedURLException { ClassLoader loader; // see if the client classloader is enabled if (useClientClassLoader()) { StringBuilder sb = new StringBuilder(); sb.append(workDir).append("/"). - append(File.pathSeparator).append(file). append(File.pathSeparator).append(workDir).append("/classes/"). append(File.pathSeparator).append(workDir).append("/lib/*"); // HADOOP_CLASSPATH is added to the client classpath @@ -277,7 +276,6 @@ public class RunJar { } else { List classPath = new ArrayList<>(); classPath.add(new File(workDir + "/").toURI().toURL()); - classPath.add(file.toURI().toURL()); classPath.add(new File(workDir, "classes/").toURI().toURL()); File[] libs = new File(workDir, "lib").listFiles(); if (libs != null) {