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

Michael Dürig commented on OAK-5355:
------------------------------------

bq. I think the tests capture the idea that you're only able to refresh if you 
call baseChanged() (if you add this to your example diff, the test will pass). 

I'm fine with this but I would add a comment to that respect then. 

bq. An alternative would be to mock the {{SecureNodeBuilder}}.

I wouldn't do that. 



> Too eager refreshing of tree permissions in SecureNodeBuilder
> -------------------------------------------------------------
>
>                 Key: OAK-5355
>                 URL: https://issues.apache.org/jira/browse/OAK-5355
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core
>            Reporter: Michael Dürig
>            Assignee: angela
>              Labels: technical_debt
>             Fix For: 1.7.0, 1.8
>
>         Attachments: OAK-5355.patch
>
>
> {{SecureNodeBuilder.baseChanged()}} calls 
> {{SecureNodeBuilder.getTreePermission()}} even though the tree permission 
> would be calculated lazily as needed anyway. Re-calculating the tree 
> permissions at this point bears the risk of accessing stale data from the 
> underlying not yet fully refreshed root (when being called e.g. from 
> {{MutableRoot.refresh()}}. 
> I would thus argue for removing the call to 
> {{SecureNodeBuilder.getTreePermission()}} from 
> {{SecureNodeBuilder.baseChanged()}}. 
> See also OAK-5296 for an in-depth analysis. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to