diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/ReaderStrategy.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/ReaderStrategy.java index d75a8ef653c..c984c3b7322 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/ReaderStrategy.java +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/ReaderStrategy.java @@ -181,7 +181,7 @@ public int readFromBlock(BlockReader blockReader, int length) throws IOException { ByteBuffer tmpBuf = readBuf.duplicate(); tmpBuf.limit(tmpBuf.position() + length); - int nRead = blockReader.read(readBuf.slice()); + int nRead = blockReader.read(tmpBuf); // Only when data are read, update the position if (nRead > 0) { readBuf.position(readBuf.position() + nRead);