diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/ConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/ConfigurationProvider.java index ae85e82..ed18deef 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/ConfigurationProvider.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/ConfigurationProvider.java @@ -18,6 +18,7 @@ package org.apache.hadoop.yarn.conf; +import java.io.Closeable; import java.io.IOException; import java.io.InputStream; @@ -33,16 +34,12 @@ * Real ConfigurationProvider implementations need to derive from it and * implement load methods to actually load the configuration. */ -public abstract class ConfigurationProvider { +public abstract class ConfigurationProvider implements Closeable { public void init(Configuration bootstrapConf) throws Exception { initInternal(bootstrapConf); } - public void close() throws Exception { - closeInternal(); - } - /** * Opens an InputStream at the indicated file * @param bootstrapConf Configuration @@ -60,9 +57,4 @@ public abstract InputStream getConfigurationInputStream( */ public abstract void initInternal(Configuration bootstrapConf) throws Exception; - - /** - * Derived classes close themselves using this method. - */ - public abstract void closeInternal() throws Exception; } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/FileSystemBasedConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/FileSystemBasedConfigurationProvider.java index bf50cad..71fd9c9 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/FileSystemBasedConfigurationProvider.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/FileSystemBasedConfigurationProvider.java @@ -50,19 +50,11 @@ public synchronized InputStream getConfigurationInputStream( throw new YarnException( "Illegal argument! The parameter should not be null or empty"); } - Path filePath; - if (YarnConfiguration.RM_CONFIGURATION_FILES.contains(name)) { - filePath = new Path(this.configDir, name); - if (!fs.exists(filePath)) { - LOG.info(filePath + " not found"); - return null; - } - } else { - filePath = new Path(name); - if (!fs.exists(filePath)) { - LOG.info(filePath + " not found"); - return null; - } + Path filePath = YarnConfiguration.RM_CONFIGURATION_FILES.contains(name) ? + new Path(this.configDir, name) : new Path(name); + if (!fs.exists(filePath)) { + LOG.info(filePath + " not found"); + return null; } return fs.open(filePath); } @@ -80,7 +72,7 @@ public synchronized void initInternal(Configuration bootstrapConf) } @Override - public synchronized void closeInternal() throws Exception { + public synchronized void close() throws IOException { fs.close(); } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/LocalConfigurationProvider.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/LocalConfigurationProvider.java index cfa194f..be4f9ac 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/LocalConfigurationProvider.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/LocalConfigurationProvider.java @@ -51,7 +51,7 @@ public void initInternal(Configuration bootstrapConf) throws Exception { } @Override - public void closeInternal() throws Exception { + public void close() throws IOException { // Do nothing } }