diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 4853959b270..7474fb87e4b 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -431,6 +431,14 @@ Branch-2 ( Unreleased changes ) HADOOP-4572. Can not access user logs - Jetty is not configured by default to serve aliases/symlinks (ahmed via tucu) + HADOOP-8660. TestPseudoAuthenticator failing with NPE. (tucu) + + HADOOP-8699. some common testcases create core-site.xml in test-classes + making other testcases to fail. (tucu) + + HADOOP-8031. Configuration class fails to find embedded .jar resources; + should use URL.openStream() (genman via tucu) + BREAKDOWN OF HDFS-3042 SUBTASKS HADOOP-8220. ZKFailoverController doesn't handle failure to become active @@ -463,11 +471,6 @@ Branch-2 ( Unreleased changes ) HADOOP-8405. ZKFC tests leak ZK instances. (todd) - HADOOP-8660. TestPseudoAuthenticator failing with NPE. (tucu) - - HADOOP-8699. some common testcases create core-site.xml in test-classes - making other testcases to fail. (tucu) - Release 2.0.0-alpha - 05-23-2012 INCOMPATIBLE CHANGES 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 e9b76609adf..cf7aafafb73 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 @@ -1862,6 +1862,32 @@ public class Configuration implements Iterable>, return result.entrySet().iterator(); } + private Document parse(DocumentBuilder builder, URL url) + throws IOException, SAXException { + if (!quietmode) { + LOG.info("parsing URL " + url); + } + if (url == null) { + return null; + } + return parse(builder, url.openStream()); + } + + private Document parse(DocumentBuilder builder, InputStream is) + throws IOException, SAXException { + if (!quietmode) { + LOG.info("parsing input stream " + is); + } + if (is == null) { + return null; + } + try { + return builder.parse(is); + } finally { + is.close(); + } + } + private void loadResources(Properties properties, ArrayList resources, boolean quiet) { @@ -1911,21 +1937,10 @@ public class Configuration implements Iterable>, boolean returnCachedProperties = false; if (resource instanceof URL) { // an URL resource - URL url = (URL)resource; - if (url != null) { - if (!quiet) { - LOG.info("parsing " + url); - } - doc = builder.parse(url.toString()); - } + doc = parse(builder, (URL)resource); } else if (resource instanceof String) { // a CLASSPATH resource URL url = getResource((String)resource); - if (url != null) { - if (!quiet) { - LOG.info("parsing " + url); - } - doc = builder.parse(url.toString()); - } + doc = parse(builder, url); } else if (resource instanceof Path) { // a file resource // Can't use FileSystem API or we get an infinite loop // since FileSystem uses Configuration API. Use java.io.File instead. @@ -1933,22 +1948,13 @@ public class Configuration implements Iterable>, .getAbsoluteFile(); if (file.exists()) { if (!quiet) { - LOG.info("parsing " + file); - } - InputStream in = new BufferedInputStream(new FileInputStream(file)); - try { - doc = builder.parse(in); - } finally { - in.close(); + LOG.info("parsing File " + file); } + doc = parse(builder, new BufferedInputStream(new FileInputStream(file))); } } else if (resource instanceof InputStream) { - try { - doc = builder.parse((InputStream)resource); - returnCachedProperties = true; - } finally { - ((InputStream)resource).close(); - } + doc = parse(builder, (InputStream) resource); + returnCachedProperties = true; } else if (resource instanceof Properties) { overlay(properties, (Properties)resource); } else if (resource instanceof Element) {