[
https://issues.apache.org/jira/browse/HADOOP-8833?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Harsh J updated HADOOP-8833:
----------------------------
Target Version/s: 3.0.0 (was: 2.0.2-alpha)
> 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, HADOOP-8833.patch, 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