Author: todd
Date: Thu May 3 21:57:10 2012
New Revision: 1333649
URL: http://svn.apache.org/viewvc?rev=1333649&view=rev
Log:
HADOOP-8350. Improve NetUtils.getInputStream to return a stream which has a
tunable timeout. Contributed by Todd Lipcon.
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/RemoteBlockReader2.java
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/RemoteBlockReader2.java
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/RemoteBlockReader2.java?rev=1333649&r1=1333648&r2=1333649&view=diff
==============================================================================
---
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/RemoteBlockReader2.java
(original)
+++
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/RemoteBlockReader2.java
Thu May 3 21:57:10 2012
@@ -46,7 +46,7 @@ import org.apache.hadoop.hdfs.security.t
import org.apache.hadoop.hdfs.server.common.HdfsServerConstants;
import org.apache.hadoop.hdfs.util.DirectBufferPool;
import org.apache.hadoop.net.NetUtils;
-import org.apache.hadoop.net.SocketInputStream;
+import org.apache.hadoop.net.SocketInputWrapper;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.util.DataChecksum;
@@ -450,11 +450,8 @@ public class RemoteBlockReader2 impleme
//
// Get bytes in block, set streams
//
- Preconditions.checkArgument(sock.getChannel() != null,
- "Socket %s does not have an associated Channel.",
- sock);
- SocketInputStream sin =
- (SocketInputStream)NetUtils.getInputStream(sock);
+ SocketInputWrapper sin = NetUtils.getInputStream(sock);
+ ReadableByteChannel ch = sin.getReadableByteChannel();
DataInputStream in = new DataInputStream(sin);
BlockOpResponseProto status = BlockOpResponseProto.parseFrom(
@@ -477,7 +474,7 @@ public class RemoteBlockReader2 impleme
}
return new RemoteBlockReader2(file, block.getBlockPoolId(),
block.getBlockId(),
- sin, checksum, verifyChecksum, startOffset, firstChunkOffset, len,
sock);
+ ch, checksum, verifyChecksum, startOffset, firstChunkOffset, len,
sock);
}
static void checkSuccess(