[
https://issues.apache.org/jira/browse/DERBY-3941?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Yun Lee updated DERBY-3941:
---------------------------
Attachment: derby-3941-3.stat
derby-3941-3.diff
Knut, I think you are right! DataInput.readByte() does act differently from
InputStream.read(), and throws a EOF Exception when EOF is met.
I have moved the code into a new util class DataInputUtil, and wrote the
corresponding test class. Please check it, thanks!
Yun
> Unsafe use of DataInput.skipBytes() in StoredPage and StoredFieldHeader
> -----------------------------------------------------------------------
>
> Key: DERBY-3941
> URL: https://issues.apache.org/jira/browse/DERBY-3941
> Project: Derby
> Issue Type: Bug
> Components: Newcomer, Store
> Reporter: Knut Anders Hatlen
> Assignee: Yun Lee
> Priority: Minor
> Attachments: derby-3941-1.diff, derby-3941-1.stat, derby-3941-2.diff,
> derby-3941-2.stat, derby-3941-3.diff, derby-3941-3.stat
>
>
> Some methods in StoredFileHeader and StoredPage call
> java.io.DataInput.skipBytes(int) with the assumption that it always skips the
> requested number of bytes. According to the javadoc for skipBytes, it may
> skip fewer bytes than requested, possibly 0, even if the end of the stream
> hasn't been reached.
> The problem exists in these methods:
> StoredFieldHeader.readFieldDataLength()
> StoredPage.readRecordFromStream()
> StoredPage.skipField()
> StoredPage.readOneColumnFromPage()
> StoredPage.readRecordFromArray()
> We should change the code so that it works correctly even if skipBytes() were
> to skip fewer bytes than requested.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.