On 11/8/18 12:52 PM, Brian Burkhalter wrote:
Hi Daniel,
On Nov 8, 2018, at 1:50 AM, Daniel Fuchs <daniel.fu...@oracle.com> wrote:
So FWIW my point was that there's nothing that you can really
guarantee in InputSteam::skipFully() if a subclass implementation of
skip() uses negative number to e.g. signal abnormal conditions
(such as EOF?). And I wonder if that should warrant a disclaimer
in the API doc of InputStream::skipFully (maybe an @implSpec?)
I don’t know about having an explicit disclaimer; that seems a little strange
to me. If the new method is defined in terms of skip() the I would think that
it is implicit that misbehavior of the latter would cause problems.
My thinking is along the lines of Daniel's.
skipNBytes() should account for weird behavior on the part of a
subclass's skip() method. I'm also in favor of documenting which other
InputStream methods might be called.
But some of the possible skip() behavior being described is not
mentioned in InputStream, such as skipping MORE than n bytes, or calling
skip() with negative values in order to navigate backwards.
Some sort of disclaimer could frame the behavior being described, even
if only something like, "skip() makes a best effort to account for a
subclass's overridden skip() method behaving unexpectedly"
-Brent