jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dominique Pfister (JIRA)" <j...@apache.org>
Subject [jira] Created: (JCR-1487) Transient states should be persisted in depth-first traversal order
Date Wed, 19 Mar 2008 10:54:24 GMT
Transient states should be persisted in depth-first traversal order

                 Key: JCR-1487
                 URL: https://issues.apache.org/jira/browse/JCR-1487
             Project: Jackrabbit
          Issue Type: Bug
          Components: jackrabbit-core
    Affects Versions: none
            Reporter: Dominique Pfister
            Assignee: Dominique Pfister
            Priority: Minor
             Fix For: 1.5

Inside Node.save(), when filling the list of transient (modified) items, the node itself is
added first (if transient) and all transient descendant nodes in depth-first order. This can
lead to the following problem with shareable nodes and path-based access management: 

1) assume a node N has a shared child S, which is shared with at least one other node N'
2) S.removeShare is invoked: this removes S from the list of child nodes in N
3) N.save is invoked

N is persisted first, then S. If a path-based access manager tries to build the path of S
after N has been persisted, S will no longer be returned in the list of removed child node
entries, and an exception will be thrown. This can be circumvented by adding N last.

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

View raw message