[
https://issues.apache.org/jira/browse/DERBY-3770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen updated DERBY-3770:
--------------------------------------
Attachment: derby-3770-use-1a.diff
Attaching a patch to make the utility methods used more places in the code
(derby-3770-use-1a.diff). It replaces all the skip loops with calls to
skipFully() or skipUntilEOF(). With this patch, the first four methods in the
list above use the utility methods.
All the regression tests ran cleanly.
> Create a utility class for skipping data in an InputStream
> ----------------------------------------------------------
>
> Key: DERBY-3770
> URL: https://issues.apache.org/jira/browse/DERBY-3770
> Project: Derby
> Issue Type: Improvement
> Components: Miscellaneous
> Affects Versions: 10.5.0.0
> Reporter: Kristian Waagan
> Assignee: Junjie Peng
> Priority: Minor
> Attachments: derby-3770-1.patch, derby-3770-1.stat,
> derby-3770-2.patch, derby-3770-2.stat, derby-3770-3.patch, derby-3770-3.stat,
> derby-3770-4.patch, derby-3770-4.patch, derby-3770-4.stat, derby-3770-4.stat,
> derby-3770-5.patch, derby-3770-5.stat, derby-3770-6.patch, derby-3770-6.stat,
> derby-3770-use-1a.diff
>
>
> The contract of InputStream.skip is somewhat difficult, some would even say
> broken.
> See http://java.sun.com/javase/6/docs/api/java/io/InputStream.html#skip(long))
> A utility class should be created to ensure that we use the same skip
> procedure throughout the Derby code base.
> Suggested functionality:
> - long skipFully(InputStream) : skips until EOF, returns number of bytes
> skipped
> - void skipFully(InputStream,long) : skips requested number of bytes, throws
> EOFException if there is too few bytes in the stream
> I know of two different approaches, both skipping in a loop:
> a) Verify EOF with a read call when skip returns zero.
> b) Throw EOFException if skip returns zero before requested number of bytes
> have been skipped.
> There's related code in iapi.util.UTF8Util. Maybe this class, say StreamUtil,
> could be put in the same package?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.