You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Hadoop QA (JIRA)" <ji...@apache.org> on 2012/09/21 11:53:07 UTC

[jira] [Commented] (HADOOP-8833) fs -text should make sure to call inputstream.seek(0) before using input stream

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

Hadoop QA commented on HADOOP-8833:
-----------------------------------

+1 overall.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12546011/HADOOP-8833.patch
  against trunk revision .

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 1 new or modified test files.

    +1 javac.  The applied patch does not increase the total number of javac compiler warnings.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 eclipse:eclipse.  The patch built with eclipse:eclipse.

    +1 findbugs.  The patch does not introduce any new Findbugs (version 1.3.9) warnings.

    +1 release audit.  The applied patch does not increase the total number of release audit warnings.

    +1 core tests.  The patch passed unit tests in hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs.

    +1 contrib tests.  The patch passed contrib unit tests.

Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/1490//testReport/
Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/1490//console

This message is automatically generated.
                
> fs -text should make sure to call inputstream.seek(0) before using input stream
> -------------------------------------------------------------------------------
>
>                 Key: HADOOP-8833
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8833
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs
>    Affects Versions: 2.0.2-alpha
>            Reporter: Harsh J
>            Assignee: Harsh J
>         Attachments: HADOOP-8833.patch
>
>
> From Muddy Dixon on HADOOP-8449:
> Hi
> We found the changes in order of switch and guard block in
> {code}
> private InputStream forMagic(Path p, FileSystem srcFs) throws IOException
> {code}
> Because of this change, return value of
> {code}
> codec.createInputStream(i)
> {code}
> is changed if codec exists.
> {code}
> private InputStream forMagic(Path p, FileSystem srcFs) throws IOException {
>     FSDataInputStream i = srcFs.open(p);
>     // check codecs
>     CompressionCodecFactory cf = new CompressionCodecFactory(getConf());
>     CompressionCodec codec = cf.getCodec(p);
>     if (codec != null) {
>       return codec.createInputStream(i);
>     }
>     switch(i.readShort()) {
>        // cases
>     }
> {code}
> New:
> {code}
> private InputStream forMagic(Path p, FileSystem srcFs) throws IOException {
>     FSDataInputStream i = srcFs.open(p);
>     switch(i.readShort()) { // <=== index (or pointer) processes!!
>       // cases
>       default: {
>         // Check the type of compression instead, depending on Codec class's
>         // own detection methods, based on the provided path.
>         CompressionCodecFactory cf = new CompressionCodecFactory(getConf());
>         CompressionCodec codec = cf.getCodec(p);
>         if (codec != null) {
>           return codec.createInputStream(i);
>         }
>         break;
>       }
>     }
>     // File is non-compressed, or not a file container we know.
>     i.seek(0);
>     return i;
>   }
> {code}
> Fix is to use i.seek(0) before we use i anywhere. I missed that.

--
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