commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksandr Dubinsky (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (EXEC-92) StreamPumper - Check For EOF
Date Thu, 29 Oct 2015 21:59:27 GMT

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

Aleksandr Dubinsky commented on EXEC-92:
----------------------------------------

The javadoc says 3 times that {{read}} returns at least one byte. It says only once that it
returns -1 for EOF. So, which part of the contract is an imbecile more likely to ignore?

OTOH, {{write}} accepts length 0.

Let's trust our contracts and move on...

> StreamPumper - Check For EOF
> ----------------------------
>
>                 Key: EXEC-92
>                 URL: https://issues.apache.org/jira/browse/EXEC-92
>             Project: Commons Exec
>          Issue Type: Bug
>    Affects Versions: 1.3
>            Reporter: BELUGA BEHR
>             Fix For: 1.4
>
>         Attachments: StreamPumper.java.patch
>
>
> When the StreamPumper is copying data from the InputStream to the OutputStream, it would
be safer to check for EOF instead of a read size greater than zero to protect against InputStream
implementations that don't respect the contract as defined in Java core JavaDoc.
> Patch Included.  I took code from the copy method of the IOUtils class.
> {code:title=StreamPumper.java|borderStyle=solid}
> while ((length = is.read(buf)) > 0)
> {
>     os.write(buf, 0, length);
> }
> {code}



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

Mime
View raw message