[ 
https://issues.apache.org/jira/browse/JCR-4015?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15467301#comment-15467301
 ] 

Carsten Ziegeler commented on JCR-4015:
---------------------------------------

[~reschke] It seems we didn't catch all situations, the following method:
    public static Node getOrCreateByPath(String absolutePath,
                                         boolean createUniqueLeaf,
                                         String intermediateNodeType,
                                         String nodeType, Session session,
                                         boolean autoSave)
still does a session.getRootNode() - it should rather traverse the tree up, 
based on the provided path and use the deepest one found to start

> CLONE - jackrabbit-jcr-commons JcrUtils.getOrCreateByPath fails if session is 
> not allowed to read root
> ------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-4015
>                 URL: https://issues.apache.org/jira/browse/JCR-4015
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-jcr-commons
>    Affects Versions: 2.4.5, 2.6.5, 2.8.1, 2.10.3, 2.12.2
>            Reporter: Carsten Ziegeler
>            Assignee: Julian Reschke
>
> JcrUtils.getOrCreateByPath  starts to try to find the node from the root down 
> to the specified path, therefore if the current session has not access to 
> "/", it fails. JcrUtils.getOrCreateByPath must try the longest path first and 
> then reduce it until it finds an accessible node. So for example if the input 
> is "/a/b/c" instead of testing for "/", "/a", "/a/b" .. it should test 
> /a/b/c, /a/b, /a and then /



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to