Unico Hommes created JCR-3501:
---------------------------------

             Summary: Modified states must be untouched while cancelling an 
update
                 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

Reply via email to