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

Steve Loughran commented on HADOOP-15871:
-----------------------------------------

Extensions to 
{{hadoop-common-project/hadoop-common/src/site/markdown/filesystem/fsdatainputstream.md}}
 welcome; with contract tests...could be bundled with any HADOOP-15870 changes.

workflow
# work out what is meant to happen @ java APIs
# look at HDFS to see what it thinks should happen
# spec
# contract tests
# test object stores & patch individually

looking at java.io, available() says "which won't block". For S3A it'd actually 
be the remaining amount of data in the current read, so just forward to 
{{wrappedStream.available()}} if wrappedStream != null, else 0. But 
{{com.amazonaws.services.s3.model.S3ObjectInputStream}}} calls out always 
returning 1 here so as not to break {{GZIPInputStream}} (see 
[https://bugs.java.com/bugdatabase/view_bug.do?bug_id=7036144].

'was this gzip related? If so, something to consider including in a test too.


> Some input streams does not obey "java.io.InputStream.available" contract 
> --------------------------------------------------------------------------
>
>                 Key: HADOOP-15871
>                 URL: https://issues.apache.org/jira/browse/HADOOP-15871
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs, fs/s3
>            Reporter: Shixiong Zhu
>            Priority: Major
>
> E.g,  DFSInputStream  and S3AInputStream return the size of the remaining 
> available bytes, but the javadoc of "available" says it should "Returns an 
> estimate of the number of bytes that can be read (or skipped over) from this 
> input stream *without blocking* by the next invocation of a method for this 
> input stream."
> I understand that some applications may rely on the current behavior. It 
> would be great that there is an interface to document how "available" should 
> be implemented.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to