[
https://issues.apache.org/jira/browse/JCR-1040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12518157
]
Julian Reschke commented on JCR-1040:
-------------------------------------
Hi Angela,
I have tried to repro the bug with the test cases in contrib/spi/client, and
failed to do so.
So what's different over here? The first thing that comes to mind is that in my
SPI implementation, all Nodes are referenceable, and the NodeId returned upon
NodeInfo.getId() are always built just from the unique id.
I just changed that experimentally (now always building the Id from an absolute
Path), and sure enough, the tests pass now. So it has to do with the Id format.
Does that ring a bell?
> JCR2SPI: remove node operation missing in submitted SPI batch
> -------------------------------------------------------------
>
> Key: JCR-1040
> URL: https://issues.apache.org/jira/browse/JCR-1040
> Project: Jackrabbit
> Issue Type: Bug
> Components: SPI
> Reporter: Julian Reschke
>
> In JCR2SPI, the following sequence of operations seems to lead to an
> incorrect SPI batch being submitted:
> 1) remove "/a"
> 2) add "/a"
> 3) add "/a/b"
> 4) session.save()
> This seems to create an SPI batch where the first remove operation is missing.
> Note that the problem only seems to occur when step 3 is part of the sequence.
> Full Java source for test:
> try {
> if
> (session.getRepository().getDescriptor(Repository.LEVEL_2_SUPPORTED).equals("true"))
> {
> Node testnode;
> String name = "delete-test";
>
> Node root = session.getRootNode();
>
> // make sure it's there
> if (! root.hasNode(name)) {
> root.addNode(name, "nt:folder");
> session.save();
> }
>
> // now test remove/add in one batch
> if (root.hasNode(name)) {
> testnode = root.getNode(name);
> testnode.remove();
> // session.save(); // un-commenting this makes the test pass
> }
>
> testnode = root.addNode(name, "nt:folder");
> // add one child
> testnode.addNode(name, "nt:folder"); // commenting this out makes the
> test pass
>
> session.save();
> }
> } finally {
> session.logout();
> }
>
>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.