jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Julian Reschke (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-1040) JCR2SPI: remove node operation missing in submitted SPI batch
Date Tue, 07 Aug 2007 14:05:59 GMT

    [ 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.


Mime
View raw message