[
https://issues.apache.org/jira/browse/SLING-5017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14741827#comment-14741827
]
Alexander Klimetschek commented on SLING-5017:
----------------------------------------------
Two notes:
* should check if other methods have the same issue (knowing that the ValueMap
caches property values)
* using ResourceResolver.commit() (instead of a plain jcr session.save()) does
not seem to make a difference, as all it does is call session.save() and there
is no invalidation mechanism for existing resource objects (and IMO should not,
the JCR implementation already has to cover this tricky part)
> Moving a JCR node not reflected in JcrNodeResource
> --------------------------------------------------
>
> Key: SLING-5017
> URL: https://issues.apache.org/jira/browse/SLING-5017
> Project: Sling
> Issue Type: Bug
> Components: JCR
> Reporter: Alexander Klimetschek
>
> When moving a JCR node via the JCR API behind a resource, after the resource
> has been fetched already, e.g. the request resource, Resource.getPath() and
> Resource.getName() will still return the old path and name.
> This is because the path is [cached in
> JcrItemResource|https://github.com/apache/sling/blob/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResource.java#L83]
> and it uses the getPath() and [getName() implementation of
> AbstractResource|https://github.com/apache/sling/blob/trunk/bundles/api/src/main/java/org/apache/sling/api/resource/AbstractResource.java#L53]
> which are based on the cached path.
> To ensure the correct transient JCR semantics, the resource should pass
> getPath() and getName() through to the underlying Node (respectively Item).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)