From 55e19b7f0c1243090dff2d08ed785cefd420b009 Mon Sep 17 00:00:00 2001 From: Jing Zhao Date: Fri, 15 Apr 2016 10:53:40 -0700 Subject: [PATCH] HDFS-10293. StripedFileTestUtil#readAll flaky. Contributed by Mingliang Liu. --- .../hadoop/hdfs/StripedFileTestUtil.java | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/StripedFileTestUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/StripedFileTestUtil.java index 0f0221c1197..6d0dfa86c82 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/StripedFileTestUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/StripedFileTestUtil.java @@ -34,6 +34,7 @@ import org.apache.hadoop.hdfs.server.namenode.ErasureCodingPolicyManager; import org.apache.hadoop.hdfs.util.StripedBlockUtil; import org.apache.hadoop.hdfs.web.WebHdfsFileSystem.WebHdfsInputStream; +import org.apache.hadoop.io.IOUtils; import org.apache.hadoop.io.erasurecode.CodecUtil; import org.apache.hadoop.io.erasurecode.rawcoder.RawErasureEncoder; import org.junit.Assert; @@ -85,16 +86,6 @@ static byte getByte(long pos) { return (byte) (pos % mod + 1); } - static int readAll(FSDataInputStream in, byte[] buf) throws IOException { - int readLen = 0; - int ret; - while ((ret = in.read(buf, readLen, buf.length - readLen)) >= 0 && - readLen <= buf.length) { - readLen += ret; - } - return readLen; - } - static void verifyLength(FileSystem fs, Path srcPath, int fileLength) throws IOException { FileStatus status = fs.getFileStatus(srcPath); @@ -214,11 +205,11 @@ static void verifySeek(FileSystem fs, Path srcPath, int fileLength) static void assertSeekAndRead(FSDataInputStream fsdis, int pos, int writeBytes) throws IOException { fsdis.seek(pos); - byte[] buf = new byte[writeBytes]; - int readLen = StripedFileTestUtil.readAll(fsdis, buf); - assertEquals(readLen, writeBytes - pos); - for (int i = 0; i < readLen; i++) { - assertEquals("Byte at " + i + " should be the same", StripedFileTestUtil.getByte(pos + i), buf[i]); + byte[] buf = new byte[writeBytes - pos]; + IOUtils.readFully(fsdis, buf, 0, buf.length); + for (int i = 0; i < buf.length; i++) { + assertEquals("Byte at " + i + " should be the same", + StripedFileTestUtil.getByte(pos + i), buf[i]); } }