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

Steve Loughran commented on HADOOP-12994:
-----------------------------------------

As an aside, I was thinking we could just modify {{FSInputStreamread(long 
position, byte[] buffer, int offset, int length))}} to catch an EOF exception 
and downgrade.

With azure, there's now two classes that handle EOF specially; I think swift 
will need it too. Put it all in one place, and there's one code path that 
everything picks up.

*I can't see how, on any FS, catching an EOF exception on the seek or read and 
downgrading to a -1 would be a mistake*

Remember: the param validation of seeking < 0 has already taken place, so the 
only way an EOF could be raised is if they went off the end and the FS raises 
EOFs here. For which catch and downgrade is the required action

> Specify PositionedReadable, add contract tests, fix problems
> ------------------------------------------------------------
>
>                 Key: HADOOP-12994
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12994
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: fs
>    Affects Versions: 2.8.0
>            Reporter: Steve Loughran
>            Assignee: Steve Loughran
>         Attachments: HADOOP-12994-001.patch, HADOOP-12994-002.patch, 
> HADOOP-12994-003.patch
>
>
> Some work on S3a has shown up that there aren't tests catching regressions in 
> readFully, reviewing the documentation shows that its specification could be 
> improved.
> # review the spec
> # review the implementations
> # add tests (proposed: to the seek contract; streams which support seek 
> should support positioned readable)
> # fix code, where it differs significantly from HDFS or LocalFS



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to