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