[BUG] InputStream.readNBytes doesn't correctly check for EOF
Rob Spoor
openjdk at icemanx.nl
Mon Dec 21 10:06:47 UTC 2020
On 20/12/2020 19:15, Philippe Marschall wrote:
>
>
> On 20.12.20 18:47, Rob Spoor wrote:
>> ...
>>
>> That "> 0" is incorrect here; it's allowed to return 0 before EOF
>
> I don't think the method is allowed to return 0 before EOF. To quote
> from the method Javadoc.
>
> > This method blocks until input data is available, end of file is
> detected, or an exception is thrown.
>
> > If no byte is available because the stream is at end of file, the
> value {@code -1} is returned; otherwise, at least one byte is read and
> stored into {@code b}.
>
> Cheers
> Philippe
Hi Philippe,
You are right about the readNBytes method itself. I was talking about
the read(byte[], int, int) method that is used internally by readNBytes.
That method may return 0 before EOF, and if it does then readNBytes
returns before it should.
More information about the core-libs-dev
mailing list