Repository: hadoop Updated Branches: refs/heads/HDFS-13891 2bd2e6c31 -> 4d8cc85c2 (forced update)
HADOOP-15869. BlockDecompressorStream#decompress should not return -1 in case of IOException. Contributed by Surendra Singh Lilhore Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/75291e6d Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/75291e6d Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/75291e6d Branch: refs/heads/HDFS-13891 Commit: 75291e6d53c13debf45493a870a898b63779914b Parents: e7b63ba Author: Surendra Singh Lilhore <surendralilh...@apache.org> Authored: Tue Nov 13 20:22:58 2018 +0530 Committer: Surendra Singh Lilhore <surendralilh...@apache.org> Committed: Tue Nov 13 20:22:58 2018 +0530 ---------------------------------------------------------------------- .../io/compress/BlockDecompressorStream.java | 4 +-- .../compress/TestBlockDecompressorStream.java | 29 ++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/75291e6d/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/BlockDecompressorStream.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/BlockDecompressorStream.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/BlockDecompressorStream.java index 72509c7..de457d1 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/BlockDecompressorStream.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/BlockDecompressorStream.java @@ -71,8 +71,8 @@ public class BlockDecompressorStream extends DecompressorStream { if (noUncompressedBytes == originalBlockSize) { // Get original data size try { - originalBlockSize = rawReadInt(); - } catch (IOException ioe) { + originalBlockSize = rawReadInt(); + } catch (EOFException e) { return -1; } noUncompressedBytes = 0; http://git-wip-us.apache.org/repos/asf/hadoop/blob/75291e6d/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/TestBlockDecompressorStream.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/TestBlockDecompressorStream.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/TestBlockDecompressorStream.java index c976572..cdab772 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/TestBlockDecompressorStream.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/TestBlockDecompressorStream.java @@ -18,11 +18,15 @@ package org.apache.hadoop.io.compress; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.nio.ByteBuffer; import org.junit.Test; @@ -74,4 +78,29 @@ public class TestBlockDecompressorStream { fail("unexpected IOException : " + e); } } + + @Test + public void testReadWhenIoExceptionOccure() throws IOException { + File file = new File("testReadWhenIOException"); + try { + file.createNewFile(); + InputStream io = new FileInputStream(file) { + @Override + public int read() throws IOException { + throw new IOException("File blocks missing"); + } + }; + + try (BlockDecompressorStream blockDecompressorStream = + new BlockDecompressorStream(io, new FakeDecompressor(), 1024)) { + int byteRead = blockDecompressorStream.read(); + fail("Should not return -1 in case of IOException. Byte read " + + byteRead); + } catch (IOException e) { + assertTrue(e.getMessage().contains("File blocks missing")); + } + } finally { + file.delete(); + } + } } \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org