2 Mar 2009 09:50
Resolved: (JCR-1117) Bundle cache is not rolled back when the storage of a ChangeLog fails
Martijn Hendriks (JIRA <jira <at> apache.org>
2009-03-02 08:50:13 GMT
2009-03-02 08:50:13 GMT
[
https://issues.apache.org/jira/browse/JCR-1117?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martijn Hendriks resolved JCR-1117.
-----------------------------------
Resolution: Fixed
Assignee: (was: Martijn Hendriks)
> Bundle cache is not rolled back when the storage of a ChangeLog fails
> ---------------------------------------------------------------------
>
> Key: JCR-1117
> URL: https://issues.apache.org/jira/browse/JCR-1117
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 1.3, 1.4, 1.5.0, 1.5.2
> Reporter: Martijn Hendriks
> Attachments: JCR-1117-v2.patch, JCR-1117-v3.patch, JCR-1117.patch, stacktrace.txt
>
>
> The bundle cache in the bundle persistence managers is not restored to its old state when the
AbstractBundlePersistenceManager.store(ChangeLog changeLog) method throws an exception. If, for
instance, the storage of references fails then the
AbstractBundlePersistenceManager.putBundle(NodePropBundle bundle) method has already been
called for all modified bundles. Because of the connection rollback, the bundle cache will be
out-of-sync with the persistent state. As a result, the SharedItemStateManager will have an incorrect
view of the persistent state.
> Furthermore, if the blockOnConnectionLoss property is set to true, then the
BundleDbPersistenceManager can be caught in an infinite loop because of invalid SQL inserts because of
an incorrect bundle cache; see attached stacktrace.
RSS Feed