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

Reply via email to