On Mon, 8 Feb 2021 22:51:43 GMT, Naoto Sato <[email protected]> wrote:
>> Please review this clarification of the specification of the method
>> `skip(long)` in `java.io.Reader` and its subclasses. Specifically, the
>> behavior of the method is made clear for the case when the `Reader` is
>> already at the end of its stream when the method is invoked. A corresponding
>> CSR will be filed. Also, the change includes an update to an existing test
>> in order to verify that the specification change reflects actual behavior.
>
> src/java.base/share/classes/java/io/FilterReader.java line 81:
>
>> 79: * {@inheritDoc}
>> 80: *
>> 81: * @throws IllegalArgumentException If {@code n} is negative
>> and the
>
> Does this have to be different from the `Reader.skip()`'s description? Since
> the contained reader implements `Reader` (throws IAE as a contract), that
> condition after `and` is always true?
This came from some `Reader`s, e.g., `CharArrayReader`, `StringReader`,
overriding `skip()` _not_ to throw an IAE. But at the specification level
perhaps this should not be recognized.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2274