RFR: JDK-8011136 - FileInputStream.available and skip inconsistencies
Dan Xu
dan.xu at oracle.com
Wed May 15 18:04:08 UTC 2013
On 05/13/2013 06:25 AM, Alan Bateman wrote:
> On 10/05/2013 22:20, Dan Xu wrote:
>> Hi,
>>
>> The FileInputStream.available() method can return a negative value
>> when the file position is beyond the endof afile. This is an
>> unspecified behaviour that has the potential to break applications
>> that expect available to return a value of 0 or greater. The
>> FileInputStream.skip(long) method allows a negative value as its
>> parameter. This conflicts with the specifications of InputStream and
>> FileInputStream classes.
>>
>> They are both long standing behaviours. In the fix, available() has
>> been changed to only return 0 or positive values. And for the
>> skip(long) method, due to the compatibility concern, its behaviour
>> will not be changed. Instead, the related java specs are going to be
>> changed to describe its current behaviour.
>>
>> bug: http://bugs.sun.com/view_bug.do?bug_id=8011136
>> webrev: http://cr.openjdk.java.net/~dxu/8011136/webrev.00/
>>
>> Thanks for your review!
>>
>> -Dan
> Thanks for following up on this one. Overall I agree with the
> approach, it specifies skip to match long standing behavior and fixes
> available to not return negative values.
>
> Just on wording, it might be better if the new statement in
> InputStream.skip didn't start with "But". How about "Subclasses may
> ..." as this would be consistent with exiting wording in this class.
>
> For FileInputStream then the statement on how "available" behaves
> should probably move to the available javadoc. Something like "Returns
> 0 when the file position is beyond EOF" should be fine.
>
> -Alan.
>
>
>
>
Thanks for your review, I have updated wordings in the java doc. The new
webrev can be reviewed at
http://cr.openjdk.java.net/~dxu/8011136/webrev.01/
<http://cr.openjdk.java.net/%7Edxu/8011136/webrev.01/>.
-Dan
More information about the core-libs-dev
mailing list