[
https://issues.apache.org/jira/browse/HADOOP-9692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13699257#comment-13699257
]
Zhijie Shen commented on HADOOP-9692:
-------------------------------------
IMHO, IOException and EOFException needs to be treated differently.
EOFException is a signal that indicate the end of the stream, such that what
you're doing helps to surpass the case of reading a zero-length file. In
contrast, IOException can be raised according to a number of other reasons. For
example, the stream has already been closed before reading. If IOException is
caught as well, reading a closed stream of a non-zero-length file is going to
be regarded as reaching the end of stream as well. In this specific case, the
function will enter the if block, and throw "not a SequenceFile" IOException
instead, which I think it is not appropriate.
> sequencefile reader throws EOFException on zero-length file
> -----------------------------------------------------------
>
> Key: HADOOP-9692
> URL: https://issues.apache.org/jira/browse/HADOOP-9692
> Project: Hadoop Common
> Issue Type: Bug
> Affects Versions: 2.0.3-alpha, 2.1.0-beta, 2.0.5-alpha
> Reporter: Chu Tong
> Attachments: HADOOP-9692.patch, HADOOP-9692.patch, HADOOP-9692.patch,
> HADOOP-9692.patch
>
>
> sequencefile reader throws EOFException on zero-length file, stacktrace as
> shown:
> Caused by: java.io.EOFException
> at java.io.DataInputStream.readFully(DataInputStream.java:180)
> at java.io.DataInputStream.readFully(DataInputStream.java:152)
> at
> org.apache.hadoop.io.SequenceFile$Reader.init(SequenceFile.java:1845)
> at
> org.apache.hadoop.io.SequenceFile$Reader.initialize(SequenceFile.java:1810)
> at
> org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1759)
> at
> org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1773)
> at
> org.apache.hadoop.mapred.SequenceFileRecordReader.<init>(SequenceFileRecordReader.java:49)
> at
> org.apache.hadoop.mapred.SequenceFileInputFormat.getRecordReader(SequenceFileInputFormat.java:64)
> at
> org.apache.hadoop.hive.ql.io.CombineHiveRecordReader.<init>(CombineHiveRecordReader.java:65)
> ... 16 more
--
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