[
https://issues.apache.org/jira/browse/DERBY-3911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12688600#action_12688600
]
Knut Anders Hatlen commented on DERBY-3911:
-------------------------------------------
Note that there is one important difference between the issue logged here and
what Kathey constructed. The logged issue would actually hide any error
completely and return successfully, whereas the constructed example would still
throw an exception and reveal that something is wrong.
> BTreeController.reclaim_deleted_rows() may hide exceptions
> ----------------------------------------------------------
>
> Key: DERBY-3911
> URL: https://issues.apache.org/jira/browse/DERBY-3911
> Project: Derby
> Issue Type: Bug
> Components: Store
> Affects Versions: 10.5.0.0
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Priority: Minor
> Fix For: 10.5.0.0
>
> Attachments: derby-3911.diff
>
>
> BTreeController.reclaim_deleted_rows() contains this piece of code:
> catch (java.lang.ClassCastException cce)
> {
> // because we give up the latch on the leaf before entering this
> // routine, the page might change from a leaf to branch. If that
> // happens this routine will get a ClassCastException, and we
> // just give up trying to reclaim space.
> }
> finally
> {
> if (controlRow != null)
> controlRow.release();
> return(purged_at_least_one_row);
> }
> It intentionally hides ClassCastExceptions, but it also unintentionally hides
> all other exceptions because of the return statement in the finally clause.
> Some related discussions can be found in DERBY-3216 and DERBY-3905.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.