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