db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kristian Waagan (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-3735) Incorrect position calculation in PositionedStoreStream with read(byte[],...)
Date Fri, 27 Jun 2008 11:53:45 GMT

     [ https://issues.apache.org/jira/browse/DERBY-3735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Kristian Waagan updated DERBY-3735:
-----------------------------------

    Attachment: derby-3735-2a.diff

'derby-3735-2a.diff' fixes the bug introduced by the previous patch (1b)... 

0 (zero) is of course a valid return value for "read()", and the position has to be incremented.
I changed the "read(byte[],int,int)" to check for -1 for consistency as well. This method
will return 0 very seldom, in fact I think it requires a "user error" to happen; argument
'len' must be zero.

Regression tests run without failures.
Patch ready for review, but I will commit it shortly anyway to get rid of the tinderbox/nightly
failures.



> Incorrect position calculation in PositionedStoreStream with read(byte[],...)
> -----------------------------------------------------------------------------
>
>                 Key: DERBY-3735
>                 URL: https://issues.apache.org/jira/browse/DERBY-3735
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Store
>    Affects Versions: 10.3.1.4, 10.4.1.3, 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Minor
>             Fix For: 10.5.0.0
>
>         Attachments: derby-3735-1a.diff, derby-3735-1a.stat, derby-3735-1b.diff, derby-3735-2a.diff
>
>
> A bug in the methods 'read(byte[])' and 'read(byte[],int,int)' in PositionedStoreStream
can cause the position variable to be set to an incorrect value.
> The bug is only triggered if one of the two read methods is invoked after EOF of the
underlying stream has been reached.
> If the bug is triggered, the position will be decreased by one because the underlying
stream returns -1. Subsequent reads will further decrease the position. This can cause EOF-exceptions
(during repositioning) or incorrect data being returned in subsequent calls.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message