diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index f07cf5a5f10..5f68a43e700 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -70,6 +70,9 @@ Release 2.7.4 - UNRELEASED YARN-3269. Yarn.nodemanager.remote-app-log-dir could not be configured to fully qualified path. (Xuan Gong via junping_du) + YARN-6310. OutputStreams in AggregatedLogFormat.LogWriter can be left + open upon exceptions (Haibo Chen via jlowe) + Release 2.7.3 - 2016-08-25 INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java index 57f655b497a..655293447b4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java @@ -407,34 +407,34 @@ public class AggregatedLogFormat { } private void writeVersion() throws IOException { - DataOutputStream out = this.writer.prepareAppendKey(-1); - VERSION_KEY.write(out); - out.close(); - out = this.writer.prepareAppendValue(-1); - out.writeInt(VERSION); - out.close(); + try (DataOutputStream out = this.writer.prepareAppendKey(-1)) { + VERSION_KEY.write(out); + } + try (DataOutputStream out = this.writer.prepareAppendValue(-1)) { + out.writeInt(VERSION); + } } public void writeApplicationOwner(String user) throws IOException { - DataOutputStream out = this.writer.prepareAppendKey(-1); - APPLICATION_OWNER_KEY.write(out); - out.close(); - out = this.writer.prepareAppendValue(-1); - out.writeUTF(user); - out.close(); + try (DataOutputStream out = this.writer.prepareAppendKey(-1)) { + APPLICATION_OWNER_KEY.write(out); + } + try (DataOutputStream out = this.writer.prepareAppendValue(-1)) { + out.writeUTF(user); + } } public void writeApplicationACLs(Map appAcls) throws IOException { - DataOutputStream out = this.writer.prepareAppendKey(-1); - APPLICATION_ACL_KEY.write(out); - out.close(); - out = this.writer.prepareAppendValue(-1); - for (Entry entry : appAcls.entrySet()) { - out.writeUTF(entry.getKey().toString()); - out.writeUTF(entry.getValue()); + try (DataOutputStream out = this.writer.prepareAppendKey(-1)) { + APPLICATION_ACL_KEY.write(out); + } + try (DataOutputStream out = this.writer.prepareAppendValue(-1)) { + for (Entry entry : appAcls.entrySet()) { + out.writeUTF(entry.getKey().toString()); + out.writeUTF(entry.getValue()); + } } - out.close(); } public void append(LogKey logKey, LogValue logValue) throws IOException { @@ -443,12 +443,12 @@ public class AggregatedLogFormat { if (pendingUploadFiles.size() == 0) { return; } - DataOutputStream out = this.writer.prepareAppendKey(-1); - logKey.write(out); - out.close(); - out = this.writer.prepareAppendValue(-1); - logValue.write(out, pendingUploadFiles); - out.close(); + try (DataOutputStream out = this.writer.prepareAppendKey(-1)) { + logKey.write(out); + } + try (DataOutputStream out = this.writer.prepareAppendValue(-1)) { + logValue.write(out, pendingUploadFiles); + } } public void close() {