[
https://issues.apache.org/jira/browse/DERBY-3941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12698112#action_12698112
]
Knut Anders Hatlen commented on DERBY-3941:
-------------------------------------------
Thanks for the patch, Yun!
I have some small comments:
1) skipPersistentDataInput() checks if DataInput.readByte() returns -1 to
detect that EOF has been reached, but I think that that method will throw
EOFException and not return -1 on EOF
2) I think I would have renamed skipPersistentDataInput() and
skipFullyDataInput() to skipPersistent() and skipFully().
> 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
>
>
> 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.