PositionedStoreStream.reposition(pos) with pos greater than length leaves the
stream object in an inconsistent state
--------------------------------------------------------------------------------------------------------------------
Key: DERBY-3781
URL: https://issues.apache.org/jira/browse/DERBY-3781
Project: Derby
Issue Type: Bug
Components: Store
Affects Versions: 10.4.1.3, 10.3.3.0, 10.5.0.0
Reporter: Kristian Waagan
Assignee: Kristian Waagan
Priority: Minor
PositionedStoreStream.reposition(pos) with pos greater than the stream length
leaves the stream object in an inconsistent state, causing subsequent calls to
fail or the state to remain inconsistent (which can cause the wrong data to be
returned).
The problem is that the position variable gets out of sync with the underlying
stream.
There are at least two ways to fix this (assuming the positioned store stream
does not know the length of the underlying stream):
a) Reset stream to position zero.
b) Let the stream be positioned at EOF and update the internal position
variable.
Option b) leaves the stream in an unusable state, and the next request will
cause option a) to be performed. It also require a slight rewrite of
'PositionedStoreStream.skipFully' and 'PositionedStoreStream.reposition' to be
able to determine the position of the stream (the length in this case).
Option a) will cause the first page of the stream to be read into the cache (if
not already there), but taken the reason for doing this is an error condition
it seems acceptable.
A correct value of the position variable is required for correct/valid
operation of PositionedStoreStream.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.