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 ji...@apache.org on 2015/05/01 04:28:52 UTC
hadoop git commit: HDFS-8300. Fix unit test failures and findbugs
warning caused by HDFS-8283. Contributed by Jing Zhao.
Repository: hadoop
Updated Branches:
refs/heads/trunk 87e997823 -> 98a617662
HDFS-8300. Fix unit test failures and findbugs warning caused by HDFS-8283. Contributed by Jing Zhao.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/98a61766
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/98a61766
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/98a61766
Branch: refs/heads/trunk
Commit: 98a61766286321468bf801a9f17a843d7eae8d9e
Parents: 87e9978
Author: Jing Zhao <ji...@apache.org>
Authored: Thu Apr 30 19:27:07 2015 -0700
Committer: Jing Zhao <ji...@apache.org>
Committed: Thu Apr 30 19:27:07 2015 -0700
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 ++
.../org/apache/hadoop/hdfs/DFSOutputStream.java | 2 +-
.../org/apache/hadoop/hdfs/DataStreamer.java | 32 ++++++++++++--------
.../apache/hadoop/hdfs/TestDFSOutputStream.java | 9 ++++--
4 files changed, 29 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/98a61766/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index 7e4a6f2..3bee852 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -592,6 +592,9 @@ Release 2.8.0 - UNRELEASED
HDFS-8214. Secondary NN Web UI shows wrong date for Last Checkpoint. (clamb via wang)
+ HDFS-8300. Fix unit test failures and findbugs warning caused by HDFS-8283.
+ (jing9)
+
Release 2.7.1 - UNRELEASED
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/98a61766/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
index 4646b60..ae5d3eb 100755
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
@@ -762,7 +762,7 @@ public class DFSOutputStream extends FSOutputSummer
protected synchronized void closeImpl() throws IOException {
if (isClosed()) {
- streamer.getLastException().check();
+ streamer.getLastException().check(true);
return;
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/98a61766/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DataStreamer.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DataStreamer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DataStreamer.java
index 3727d20..8e874eb 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DataStreamer.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DataStreamer.java
@@ -174,13 +174,13 @@ class DataStreamer extends Daemon {
packets.clear();
}
- static class LastException {
- private Throwable thrown;
+ static class LastExceptionInStreamer {
+ private IOException thrown;
synchronized void set(Throwable t) {
- Preconditions.checkNotNull(t);
- Preconditions.checkState(thrown == null);
- this.thrown = t;
+ assert t != null;
+ this.thrown = t instanceof IOException ?
+ (IOException) t : new IOException(t);
}
synchronized void clear() {
@@ -188,17 +188,23 @@ class DataStreamer extends Daemon {
}
/** Check if there already is an exception. */
- synchronized void check() throws IOException {
+ synchronized void check(boolean resetToNull) throws IOException {
if (thrown != null) {
- throw new IOException(thrown);
+ if (LOG.isTraceEnabled()) {
+ // wrap and print the exception to know when the check is called
+ LOG.trace("Got Exception while checking", new Throwable(thrown));
+ }
+ final IOException e = thrown;
+ if (resetToNull) {
+ thrown = null;
+ }
+ throw e;
}
}
synchronized void throwException4Close() throws IOException {
- check();
- final IOException ioe = new ClosedChannelException();
- thrown = ioe;
- throw ioe;
+ check(false);
+ throw new ClosedChannelException();
}
}
@@ -234,7 +240,7 @@ class DataStreamer extends Daemon {
private long lastQueuedSeqno = -1;
private long lastAckedSeqno = -1;
private long bytesCurBlock = 0; // bytes written in current block
- private final LastException lastException = new LastException();
+ private final LastExceptionInStreamer lastException = new LastExceptionInStreamer();
private Socket s;
private final DFSClient dfsClient;
@@ -1741,7 +1747,7 @@ class DataStreamer extends Daemon {
/**
* @return the last exception
*/
- LastException getLastException(){
+ LastExceptionInStreamer getLastException(){
return lastException;
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/98a61766/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSOutputStream.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSOutputStream.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSOutputStream.java
index eac1fcd..e627455 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSOutputStream.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSOutputStream.java
@@ -28,6 +28,7 @@ import java.util.concurrent.atomic.AtomicReference;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.DataStreamer.LastExceptionInStreamer;
import org.apache.hadoop.hdfs.client.impl.DfsClientConf;
import org.apache.hadoop.hdfs.protocol.DatanodeInfo;
import org.apache.hadoop.hdfs.protocol.ExtendedBlock;
@@ -65,9 +66,10 @@ public class TestDFSOutputStream {
DataStreamer streamer = (DataStreamer) Whitebox
.getInternalState(dos, "streamer");
@SuppressWarnings("unchecked")
- AtomicReference<IOException> ex = (AtomicReference<IOException>) Whitebox
+ LastExceptionInStreamer ex = (LastExceptionInStreamer) Whitebox
.getInternalState(streamer, "lastException");
- Assert.assertEquals(null, ex.get());
+ Throwable thrown = (Throwable) Whitebox.getInternalState(ex, "thrown");
+ Assert.assertNull(thrown);
dos.close();
@@ -78,7 +80,8 @@ public class TestDFSOutputStream {
} catch (IOException e) {
Assert.assertEquals(e, dummy);
}
- Assert.assertEquals(null, ex.get());
+ thrown = (Throwable) Whitebox.getInternalState(ex, "thrown");
+ Assert.assertNull(thrown);
dos.close();
}