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

ASF GitHub Bot commented on HADOOP-19400:
-----------------------------------------

ahmarsuhail commented on PR #7367:
URL: https://github.com/apache/hadoop/pull/7367#issuecomment-2834755228

   @cnauroth, my team is working on an analytics focussed stream for S3A: 
https://github.com/awslabs/analytics-accelerator-s3/tree/main (AAL)
   
   In the stream, when offset is negative, we do 
`Preconditions.checkArgument(offset >= 0, "Offset is negative");`  and throw 
`IllegalArgumentException`. 
   
   From your docs in this PR, for len: 
   
   ```
   If the caller passes a negative value for `length`, then an unchecked 
exception MUST be thrown.
   The base JDK `InputStream` implementation throws 
`IndexOutOfBoundsException`. HDFS historically used
   `IllegalArgumentException`. Implementations MAY use either of these.
   ```
   
   Should be the case for offset as well? Without this 
`testInputStreamReadNegativePosition` fails with AAL. So i'm trying to 
understand if we need to change the exception AAL throws or if we can add 
another assertion `testInputStreamReadNegativePosition`




> Expand specification and contract test coverage for InputStream reads.
> ----------------------------------------------------------------------
>
>                 Key: HADOOP-19400
>                 URL: https://issues.apache.org/jira/browse/HADOOP-19400
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: documentation, fs, test
>            Reporter: Chris Nauroth
>            Assignee: Chris Nauroth
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 3.5.0, 3.4.2
>
>
> This issue is a spin-off from HADOOP-19389, specifically [this code review 
> discussion|https://github.com/apache/hadoop/pull/7291#discussion_r1920495312].
>  We can enhance the FS specification and contract tests to cover expected 
> semantics of the {{InputStream}} single-byte and multi-byte read methods:
> * Multi-byte read should validate the arguments passed to it, according to 
> the pattern established in the JDK base {{InputStream}} class.
> * You should get the same bytes whether going through single-byte or 
> multi-byte read.
> * It is legal to mix calls to single-byte and multi-byte read, and this 
> should also yield the same bytes.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to