You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Dominique Pfister (JIRA)" <ji...@apache.org> on 2007/07/02 11:46:04 UTC

[jira] Commented: (JCR-993) corrupted paths after moving nodes

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