[
https://issues.apache.org/jira/browse/JCR-3501?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Unico Hommes updated JCR-3501:
------------------------------
Summary: When cancelling an update modcount of modified states must be
reset (was: Modified states must be untouched while cancelling an update)
> When cancelling an update modcount of modified states must be reset
> -------------------------------------------------------------------
>
> Key: JCR-3501
> URL: https://issues.apache.org/jira/browse/JCR-3501
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Reporter: Unico Hommes
> Assignee: Unico Hommes
> Priority: Critical
>
> The overlayed states are touched when beginning an update, but when an update
> is cancelled they are never untouched again. A subsequent external change to
> the same state is not merged correctly because the item will not appear stale.
> The problem causes data inconsistencies in the following example scenario:
> remote.getNode("/test").addNode("a");
> remote.save();
> local.getNode("/test").addNode("b");
> local.save();
> local.getNode("/test").getNode("a").addNode("c");
> local.save();
> remote.getNode("/test").getNode("a").remove();
> final Node d = local.getNode("/test").addNode("d");
> try {
> remote.save(); // fails, but cancelling update leaves SISM in bad state
> } catch (Exception e) {
> remote.refresh(false);
> }
> remote.getNode("/test").addNode("e");
> local.save();
> remote.save(); // succeeds but leaves repository inconsistencies
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira