[
https://issues.apache.org/jira/browse/DERBY-4083?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen closed DERBY-4083.
-------------------------------------
Issue & fix info: [Repro attached] (was: [Patch Available, Repro attached])
Fix Version/s: 10.7.0.0
Resolution: Fixed
Committed revision 952131.
I don't think this code path can be reached without using the store API
directly, so I'm not planning to back-port the fix for now. Closing the issue.
> BTreeScan.delete() throws AM_RECORD_NOT_FOUND if record is found
> ----------------------------------------------------------------
>
> Key: DERBY-4083
> URL: https://issues.apache.org/jira/browse/DERBY-4083
> Project: Derby
> Issue Type: Bug
> Components: Store
> Affects Versions: 10.4.2.0
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Priority: Minor
> Fix For: 10.7.0.0
>
> Attachments: derby-4083-1a.diff, test.diff
>
>
> The code below is from BTreeScan.delete(). If the call to reposition()
> manages to position on the row, an exception is raised indicating that the
> row could not be found. If the row is not found, no exception is raised, but
> code later in the method will probably throw a NullPointerException because
> scan_position.current_leaf is set to null by reposition(). I believe that "if
> (reposition(...))" should be changed to "if (!reposition(...))". According to
> the test coverage reports, this code is not exercised by any of the existing
> tests.
> if (latch_released)
> {
> // lost latch on page in order to wait for row lock.
> // Because we have scan lock on page, we need only
> // call reposition() which will use the saved record
> // handle to reposition to the same spot on the page.
> // We don't have to search the
> // tree again, as we have the a scan lock on the page
> // which means the current_rh is valid to reposition on.
> if (reposition(scan_position, false))
> {
> throw StandardException.newException(
> SQLState.AM_RECORD_NOT_FOUND,
> new Long(err_containerid),
> new Long(scan_position.current_rh.getId()));
> }
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.