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

Reply via email to