[ https://issues.apache.org/jira/browse/JCR-993?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12509524 ]
Dominique Pfister commented on JCR-993: --------------------------------------- Hi Stefan, Thank you for reporting this nasty bug in the CachingHierarchyManager (CHM) and providing a testcase that makes it really easy to reproduce what happens underneath. I found the problem to be the following: initially the ordering of elements is as follows: T1: a b c You then reorder a before a (which is a no-op) and b before a. This results in: T2: b a c At this point, b's path is retrieved and the CHM caches it as the first element in the list. You finally move c before b: T3: c b a The CHM will receive a notification about this reordering, and retrieve the list of reordered child node entries. Since b did not change its position compared to T1 (which is the last state that was persisted) the change in b's index passes unnoticed. > corrupted paths after moving nodes > ---------------------------------- > > Key: JCR-993 > URL: https://issues.apache.org/jira/browse/JCR-993 > Project: Jackrabbit > Issue Type: Bug > Affects Versions: 1.3 > Reporter: Stefan Rinner > Assignee: Dominique Pfister > Attachments: JackrabbitPathProb.java > > > we just found a bug which corrupts the results of Node.getPath() - it seems > to be related to older Jackrabbit bugs (e.g. JCR-768) but still happens in > jackrabbit 1.3 and jackrabbit-1.4-SNAPSHOT > Basically we have a node with 3 subnodes (a, b, c), we move all of them to > index 1 - this works fine, unless we call getPath() of the third Node before > moving it. > The expected paths after moving would be: > a: /pages[37]/page/element[3] > b: /pages[37]/page/element[2] > c: /pages[37]/page/element > But we get these paths: > a: /pages[37]/page/element[3] > b: /pages[37]/page/element > c: /pages[37]/page/element -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.