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

Carsten Ziegeler commented on SLING-2780:
-----------------------------------------

Third implementation in revision 1454259 which is a combination of the previous 
to. For most operations, ResourceMetadata checks the read-only flag itself and 
it also stores the values by itself.
For all methods returning iterators (keySet, values, entrySet) an unmodifiable 
map is created on demand and used to implement these methods. So far I haven't 
seen any code iterating over a resource metadata, so I think we're fine with 
creating the copy on demand.
                
> Make ResourceMetadata read-only when delivered to client code
> -------------------------------------------------------------
>
>                 Key: SLING-2780
>                 URL: https://issues.apache.org/jira/browse/SLING-2780
>             Project: Sling
>          Issue Type: New Feature
>          Components: API, ResourceResolver
>    Affects Versions: API 2.3.0, Resource Resolver 1.0.4
>            Reporter: Carsten Ziegeler
>            Assignee: Carsten Ziegeler
>             Fix For: API 2.4.0, Resource Resolver 1.1.0
>
>
> As recently discussed in the mailing list, ResourceMetadata is an object 
> which provides additional metadata information about a resource but is not 
> intended to be changed by client code.
> As ResourceMetadata extends from (Hash)Map it is read/write by default and 
> might potentially be changed by client code.
> We should update the API docs that this object is read-only and also enforce 
> it in our implementation.
> It seems so far no one is changing the ResourceMetadata after it has left the 
> resource resolver, therefore we can make it read-only after it is returned by 
> the resource resolver.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to