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 ha...@apache.org on 2009/10/26 22:38:27 UTC
svn commit: r829987 - in /hadoop/common/branches/branch-0.20: CHANGES.txt
src/hdfs/org/apache/hadoop/hdfs/DFSClient.java
Author: hairong
Date: Mon Oct 26 21:38:27 2009
New Revision: 829987
URL: http://svn.apache.org/viewvc?rev=829987&view=rev
Log:
Merge -c 829880 829894 to move the change of HDFS-723 from trunk to branch 0.20.
Modified:
hadoop/common/branches/branch-0.20/CHANGES.txt
hadoop/common/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java
Modified: hadoop/common/branches/branch-0.20/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20/CHANGES.txt?rev=829987&r1=829986&r2=829987&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.20/CHANGES.txt Mon Oct 26 21:38:27 2009
@@ -49,6 +49,8 @@
count at the start of each block in Hadoop archives. (Ben Slusky, Tom
White, and Mahadev Konar via cdouglas)
+ HDFS-723. Fix deadlock in DFSClient#DFSOutputStream. (hairong)
+
Release 0.20.1 - 2009-09-01
INCOMPATIBLE CHANGES
Modified: hadoop/common/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java?rev=829987&r1=829986&r2=829987&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java (original)
+++ hadoop/common/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/DFSClient.java Mon Oct 26 21:38:27 2009
@@ -1023,10 +1023,17 @@
}
}
- synchronized void close() {
- while (!pendingCreates.isEmpty()) {
- String src = pendingCreates.firstKey();
- OutputStream out = pendingCreates.remove(src);
+ void close() {
+ while (true) {
+ String src;
+ OutputStream out;
+ synchronized (this) {
+ if (pendingCreates.isEmpty()) {
+ return;
+ }
+ src = pendingCreates.firstKey();
+ out = pendingCreates.remove(src);
+ }
if (out != null) {
try {
out.close();