Repository: hadoop Updated Branches: refs/heads/branch-2 7c429fbaa -> 6c66dd487
HADOOP-12404. Disable caching for JarURLConnection to avoid sharing JarFile with other users when loading resource from URL in Configuration class. Contributed by Zhihai Xu (cherry picked from commit 88d89267ff6b66e144bfcceb09532191975f2a4a) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/6c66dd48 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/6c66dd48 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/6c66dd48 Branch: refs/heads/branch-2 Commit: 6c66dd48753ea8a8b41c91f5960a3f0c7f90ccf5 Parents: 7c429fb Author: Zhihai Xu <[email protected]> Authored: Fri Sep 18 10:40:04 2015 -0700 Committer: Zhihai Xu <[email protected]> Committed: Fri Sep 18 10:44:53 2015 -0700 ---------------------------------------------------------------------- hadoop-common-project/hadoop-common/CHANGES.txt | 4 ++++ .../main/java/org/apache/hadoop/conf/Configuration.java | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/6c66dd48/hadoop-common-project/hadoop-common/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index d810ddf..4a495da 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -270,6 +270,10 @@ Release 2.8.0 - UNRELEASED HADOOP-12413. AccessControlList should avoid calling getGroupNames in isUserInList with empty groups. (Zhihai Xu via cnauroth) + HADOOP-12404. Disable caching for JarURLConnection to avoid sharing + JarFile with other users when loading resource from URL in Configuration + class. (zxu) + OPTIMIZATIONS HADOOP-11785. Reduce the number of listStatus operation in distcp http://git-wip-us.apache.org/repos/asf/hadoop/blob/6c66dd48/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java index cee17a5..8cdae3d 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java @@ -34,7 +34,9 @@ import java.io.Reader; import java.io.Writer; import java.lang.ref.WeakReference; import java.net.InetSocketAddress; +import java.net.JarURLConnection; import java.net.URL; +import java.net.URLConnection; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -2467,7 +2469,14 @@ public class Configuration implements Iterable<Map.Entry<String,String>>, if (url == null) { return null; } - return parse(builder, url.openStream(), url.toString()); + + URLConnection connection = url.openConnection(); + if (connection instanceof JarURLConnection) { + // Disable caching for JarURLConnection to avoid sharing JarFile + // with other users. + connection.setUseCaches(false); + } + return parse(builder, connection.getInputStream(), url.toString()); } private Document parse(DocumentBuilder builder, InputStream is,
