NodeReferences are lost when deleting and setting the same reference in the
same save() cycle
---------------------------------------------------------------------------------------------
Key: JCR-2667
URL: https://issues.apache.org/jira/browse/JCR-2667
Project: Jackrabbit Content Repository
Issue Type: Bug
Components: jackrabbit-core
Affects Versions: 1.6.1
Reporter: Cédric Damioli
Priority: Critical
Fix For: 1.6.3
I've written the following snippet to illustrate the issue :
Node root = session.getRootNode();
Node a = root.addNode("a");
Node b = root.addNode("b");
b.addMixin("mix:referenceable");
a.setProperty("p", b);
root.save();
System.out.println(b.getReferences().getSize()); // --> correctly
returns 1
a.setProperty("p", (Node) null);
a.setProperty("p", b);
root.save();
System.out.println(b.getReferences().getSize()); // --> returns 0 !
When the ChangeLog is processed, added references are processed before deleted
ones, so the persisted NodeReferences is finally wrong.
I've set the priority of this issue to critical, because the persisted
references count is corrupted.
A simple workaround is to first remove the property, then save, then add the
property again, but it not satisfying.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.