You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by xg...@apache.org on 2015/07/05 06:53:59 UTC
hadoop git commit: YARN-3882. AggregatedLogFormat should close
aclScanner and ownerScanner after create them. Contributed by zhihai xu
Repository: hadoop
Updated Branches:
refs/heads/trunk 2eae130ab -> 688617d6d
YARN-3882. AggregatedLogFormat should close aclScanner and ownerScanner
after create them. Contributed by zhihai xu
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/688617d6
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/688617d6
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/688617d6
Branch: refs/heads/trunk
Commit: 688617d6d7e6377a37682b5676b805cc6e8cf3f0
Parents: 2eae130
Author: Xuan <xg...@apache.org>
Authored: Sat Jul 4 21:51:58 2015 -0700
Committer: Xuan <xg...@apache.org>
Committed: Sat Jul 4 21:51:58 2015 -0700
----------------------------------------------------------------------
hadoop-yarn-project/CHANGES.txt | 3 +
.../logaggregation/AggregatedLogFormat.java | 83 +++++++++++---------
2 files changed, 49 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/688617d6/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index 2009b47..803d725 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -589,6 +589,9 @@ Release 2.8.0 - UNRELEASED
YARN-3875. FSSchedulerNode#reserveResource() doesn't print Application Id
properly in log. (Bibin A Chundatt via devaraj)
+ YARN-3882. AggregatedLogFormat should close aclScanner and ownerScanner
+ after create them. (zhihai xu via xgong)
+
Release 2.7.2 - UNRELEASED
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/688617d6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java
----------------------------------------------------------------------
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 debe770..c9453b3 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
@@ -489,18 +489,23 @@ public class AggregatedLogFormat {
* @throws IOException
*/
public String getApplicationOwner() throws IOException {
- TFile.Reader.Scanner ownerScanner = reader.createScanner();
- LogKey key = new LogKey();
- while (!ownerScanner.atEnd()) {
- TFile.Reader.Scanner.Entry entry = ownerScanner.entry();
- key.readFields(entry.getKeyStream());
- if (key.toString().equals(APPLICATION_OWNER_KEY.toString())) {
- DataInputStream valueStream = entry.getValueStream();
- return valueStream.readUTF();
+ TFile.Reader.Scanner ownerScanner = null;
+ try {
+ ownerScanner = reader.createScanner();
+ LogKey key = new LogKey();
+ while (!ownerScanner.atEnd()) {
+ TFile.Reader.Scanner.Entry entry = ownerScanner.entry();
+ key.readFields(entry.getKeyStream());
+ if (key.toString().equals(APPLICATION_OWNER_KEY.toString())) {
+ DataInputStream valueStream = entry.getValueStream();
+ return valueStream.readUTF();
+ }
+ ownerScanner.advance();
}
- ownerScanner.advance();
+ return null;
+ } finally {
+ IOUtils.cleanup(LOG, ownerScanner);
}
- return null;
}
/**
@@ -513,38 +518,42 @@ public class AggregatedLogFormat {
public Map<ApplicationAccessType, String> getApplicationAcls()
throws IOException {
// TODO Seek directly to the key once a comparator is specified.
- TFile.Reader.Scanner aclScanner = reader.createScanner();
- LogKey key = new LogKey();
- Map<ApplicationAccessType, String> acls =
- new HashMap<ApplicationAccessType, String>();
- while (!aclScanner.atEnd()) {
- TFile.Reader.Scanner.Entry entry = aclScanner.entry();
- key.readFields(entry.getKeyStream());
- if (key.toString().equals(APPLICATION_ACL_KEY.toString())) {
- DataInputStream valueStream = entry.getValueStream();
- while (true) {
- String appAccessOp = null;
- String aclString = null;
- try {
- appAccessOp = valueStream.readUTF();
- } catch (EOFException e) {
- // Valid end of stream.
- break;
- }
- try {
- aclString = valueStream.readUTF();
- } catch (EOFException e) {
- throw new YarnRuntimeException("Error reading ACLs", e);
+ TFile.Reader.Scanner aclScanner = null;
+ try {
+ aclScanner = reader.createScanner();
+ LogKey key = new LogKey();
+ Map<ApplicationAccessType, String> acls =
+ new HashMap<ApplicationAccessType, String>();
+ while (!aclScanner.atEnd()) {
+ TFile.Reader.Scanner.Entry entry = aclScanner.entry();
+ key.readFields(entry.getKeyStream());
+ if (key.toString().equals(APPLICATION_ACL_KEY.toString())) {
+ DataInputStream valueStream = entry.getValueStream();
+ while (true) {
+ String appAccessOp = null;
+ String aclString = null;
+ try {
+ appAccessOp = valueStream.readUTF();
+ } catch (EOFException e) {
+ // Valid end of stream.
+ break;
+ }
+ try {
+ aclString = valueStream.readUTF();
+ } catch (EOFException e) {
+ throw new YarnRuntimeException("Error reading ACLs", e);
+ }
+ acls.put(ApplicationAccessType.valueOf(appAccessOp), aclString);
}
- acls.put(ApplicationAccessType.valueOf(appAccessOp), aclString);
}
-
+ aclScanner.advance();
}
- aclScanner.advance();
+ return acls;
+ } finally {
+ IOUtils.cleanup(LOG, aclScanner);
}
- return acls;
}
-
+
/**
* Read the next key and return the value-stream.
*