[
https://issues.apache.org/jira/browse/DERBY-2686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kristian Waagan updated DERBY-2686:
-----------------------------------
Attachment: derby-2686-3a.stat
derby-2686-3a.diff
'derby-2686-3a.diff' makes a few changes to some streams. The most important
change is that BufferedByteHolderStream jumps out of the loop when the parent
reader returns 0. It is up to higher level streams/code to make conclusions
about the state of the stream (if EOF is reached etc).
suites.All ran without failures. Ready for review.
> The skip method for some InputStreams and Readers return invalid values
> -----------------------------------------------------------------------
>
> Key: DERBY-2686
> URL: https://issues.apache.org/jira/browse/DERBY-2686
> Project: Derby
> Issue Type: Bug
> Components: JDBC, Store
> Affects Versions: 10.3.0.0
> Reporter: Kristian Waagan
> Assigned To: Kristian Waagan
> Attachments: derby-2686-1a.diff, derby-2686-1a.stat,
> derby-2686-2a-reader.diff, derby-2686-2a-reader.stat, derby-2686-3a.diff,
> derby-2686-3a.stat
>
>
> The Java API docs for InputStream.skip and Reader.skip seem to indicate that
> returning a negative value is breaking the contract.
> The contract for Reader.skip is the more clear one, while I have taken the
> assumption that all Derby InputStreams will return 0 only when EOF has been
> reached or 0 is passed in as the amount of bytes to skip.
> Bad checking in a skip method also caused Derby to enter an infinite loop in
> a skip method.
> It should also be noted that skipping bytes/characters should be done in a
> loop, as skip is free to skip a smaller amount of bytes than requested. This
> is true even if EOF is not reached.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.