Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
core 1.4.2
-
None
-
None
Description
The following test prints "Success":
Session s1 = ...
Session s2 = ...
s1.getRootNode().setProperty("b", "0"); // init with zero
s1.getRootNode().setProperty("b", (String) null); // delete
s1.save();
s1.getRootNode().setProperty("b", "1");
s2.getRootNode().setProperty("b", "2");
s1.save();
s2.save();
System.out.println("Success");
However if the line marked "... // delete" is commented out,
it fails with the following exception:
javax.jcr.InvalidItemStateException:
cafebabe-cafe-babe-cafe-babecafebabe/{}b: the item cannot be saved
because it has been modified externally.
at org.apache.jackrabbit.core.ItemImpl.getTransientStates(ItemImpl.java:246)
at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:928)
at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:849)
It should fail in all cases. If we decide it shouldn't fail, it needs to be documented.