[ 
https://issues.apache.org/jira/browse/HADOOP-8615?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13457199#comment-13457199
 ] 

Andy Isaacson commented on HADOOP-8615:
---------------------------------------

Thomas,
Thank you for the patch!

bq. Please let me know if there is any procedure for making this tested only on 
hadoop common
release 0.20.2

Don't worry about the robots testing against the wrong branch, you're not doing 
anything wrong.

It seems to me this change would be a good thing on trunk as well. Can you port 
the patch to trunk?

bq. When the user uses this method and pass the filename, it would be printed 
in the EOF exception thrown, if any. So I believe the test cases may not be 
necessary. I was able to test it locally by forcefully creating an EOF 
Exception and verifying the new message as "java.io.EOFException: Unexpected 
end of input stream in the file = filename"

I think this should be fairly easy to test -- just write a compressed stream, 
truncate the compressed stream, then try to read it, catch the EOFException and 
verify that the filename shows up in the exception text.  Or am I missing 
something?

I'm a little worried about the places where your {{fileName}}-using methods add 
new default values, for example:
{code}
+  public CompressionInputStream createInputStream(InputStream in, 
+    Decompressor decompressor, String fileName) 
+  throws IOException {
+    return new DecompressorStream(in, decompressor, 
+               conf.getInt("io.file.buffer.size", 4*1024),fileName);
+  }
{code}
I'll have to think about it longer, but having a default value of 4k hidden in 
this method seems wrong to me at a first glance.  There are a few other 
instances of this as well.
                
> EOFException in DecompressorStream.java needs to be more verbose
> ----------------------------------------------------------------
>
>                 Key: HADOOP-8615
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8615
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: io
>    Affects Versions: 0.20.2
>            Reporter: Jeff Lord
>              Labels: patch
>         Attachments: HADOOP-8615-release-0.20.2.patch
>
>
> In ./src/core/org/apache/hadoop/io/compress/DecompressorStream.java
> The following exception should at least pass back the file that it encounters 
> this error in relation to:
>   protected void getCompressedData() throws IOException {
>     checkStream();
>     int n = in.read(buffer, 0, buffer.length);
>     if (n == -1) {
>       throw new EOFException("Unexpected end of input stream");
>     }
> This would help greatly to debug bad/corrupt files.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to