MAPREDUCE-6431. JobClient should be an AutoClosable (haibochen via rkanter)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/dca0dc8a Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/dca0dc8a Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/dca0dc8a Branch: refs/heads/HDFS-1312 Commit: dca0dc8ac28e843acd8b79c9560245638a539fde Parents: ec25c7f Author: Robert Kanter <rkan...@apache.org> Authored: Wed Jan 27 17:11:07 2016 -0800 Committer: Robert Kanter <rkan...@apache.org> Committed: Wed Jan 27 17:11:07 2016 -0800 ---------------------------------------------------------------------- hadoop-mapreduce-project/CHANGES.txt | 2 ++ .../test/java/org/apache/hadoop/mapred/TestJobClient.java | 10 ++++++++++ .../src/main/java/org/apache/hadoop/mapred/JobClient.java | 3 ++- 3 files changed, 14 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/dca0dc8a/hadoop-mapreduce-project/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index 68564b6..3f85a9b 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -311,6 +311,8 @@ Release 2.9.0 - UNRELEASED IMPROVEMENTS + MAPREDUCE-6431. JobClient should be an AutoClosable (haibochen via rkanter) + OPTIMIZATIONS BUG FIXES http://git-wip-us.apache.org/repos/asf/hadoop/blob/dca0dc8a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-common/src/test/java/org/apache/hadoop/mapred/TestJobClient.java ---------------------------------------------------------------------- diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-common/src/test/java/org/apache/hadoop/mapred/TestJobClient.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-common/src/test/java/org/apache/hadoop/mapred/TestJobClient.java index b18b531..bf37b03 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-common/src/test/java/org/apache/hadoop/mapred/TestJobClient.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-common/src/test/java/org/apache/hadoop/mapred/TestJobClient.java @@ -87,4 +87,14 @@ public class TestJobClient { client.getClusterHandle().getStagingAreaDir().toString() .equals(client.getStagingAreaDir().toString())); } + + /** + * Asks the compiler to check if JobClient is AutoClosable. + */ + @Test(timeout = 10000) + public void testAutoClosable() throws IOException { + Configuration conf = new Configuration(); + try (JobClient jobClient = new JobClient(conf)) { + } + } } http://git-wip-us.apache.org/repos/asf/hadoop/blob/dca0dc8a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/JobClient.java ---------------------------------------------------------------------- diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/JobClient.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/JobClient.java index cf123c7..baa6221 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/JobClient.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/JobClient.java @@ -137,7 +137,7 @@ import org.apache.hadoop.util.ToolRunner; */ @InterfaceAudience.Public @InterfaceStability.Stable -public class JobClient extends CLI { +public class JobClient extends CLI implements AutoCloseable { @InterfaceAudience.Private public static final String MAPREDUCE_CLIENT_RETRY_POLICY_ENABLED_KEY = @@ -499,6 +499,7 @@ public class JobClient extends CLI { /** * Close the <code>JobClient</code>. */ + @Override public synchronized void close() throws IOException { cluster.close(); }