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

Reply via email to