[ 
https://issues.apache.org/jira/browse/JCR-1883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting updated JCR-1883:
-------------------------------

    Affects Version/s: 1.5.0
        Fix Version/s: 1.6.0

OK, marking this for 1.6.0. If there's end user demand for a fix in 1.5.x then 
we can reconsider merging the fix to the 1.5 branch.

> Moved node disappears
> ---------------------
>
>                 Key: JCR-1883
>                 URL: https://issues.apache.org/jira/browse/JCR-1883
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: jackrabbit-core
>    Affects Versions: 1.5.0
>            Reporter: Thomas Mueller
>            Assignee: Thomas Mueller
>            Priority: Minor
>             Fix For: 1.6.0
>
>
> Moving a node and then refreshing it can make it disappear.
> deleteDirectory(new File("repository"));
> Repository rep = new TransientRepository();
> Session session = rep.login(new SimpleCredentials("", new char[0]));
> Node root = session.getRootNode();
> Node a = root.addNode("a");
> Node b = a.addNode("b");
> session.save();
> session.move("/a/b", "/b");
> b.refresh(false);
> // session.save(); // no effect
> for (NodeIterator it = root.getNodes(); it.hasNext();) {
>     Node n = it.nextNode();
>     System.out.println(n.getName());
>     for (NodeIterator it2 = n.getNodes(); it2.hasNext();) {
>         System.out.println("  " + it2.nextNode().getName());
>     }
> }
> In the trunk, the node 'b' is not listed after the refresh (not under the 
> root page, and not under a). The output is:
> jcr:system
>   jcr:versionStorage
>   jcr:nodeTypes
> a
> Jackrabbit 1.4.x throws an exception:
> jcr:system
>   jcr:versionStorage
>   jcr:nodeTypes
> a
> Exception in thread "main" javax.jcr.RepositoryException: failed to resolve 
> name of acee31c4-c33b-4ed4-b1b5-39db6f17fb09
>       at 
> org.apache.jackrabbit.core.HierarchyManagerImpl.getName(HierarchyManagerImpl.java:451)
>       at 
> org.apache.jackrabbit.core.CachingHierarchyManager.getName(CachingHierarchyManager.java:287)
>       at org.apache.jackrabbit.core.NodeImpl.getName(NodeImpl.java:1931)
>       at 
> org.apache.jackrabbit.core.fuzz.TestMoveRemoveRefresh.test(TestMoveRemoveRefresh.java:33)
>       at 
> org.apache.jackrabbit.core.fuzz.TestMoveRemoveRefresh.main(TestMoveRemoveRefresh.java:15)
> void deleteDirectory(File file) {
>     if (file.isDirectory()) {
>         File[] list = file.listFiles();
>         for(int i=0; i<list.length; i++) {
>             deleteDirectory(list[i]);
>         }
>     }
>     file.delete();
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to