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

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

There is a problem with the setup of {{SecureNodeBuilderTest}} that causes a 
{{null}} value to be passed to the as the {{workspace}} argument to 
{{AuthorizationConfiguration.getPermissionProvider()}} from the initialisation 
of {{MutableRoot.permissionProvider}}. The following patch fixes this:

{code}
--- oak-core/src/test/java/org/apache/jackrabbit/oak/core/MutableRootTest.java  
(date 1494834751000)
+++ oak-core/src/test/java/org/apache/jackrabbit/oak/core/MutableRootTest.java  
(revision )
@@ -74,6 +74,7 @@
         ContentSessionImpl cs = Mockito.mock(ContentSessionImpl.class);
         when(cs.toString()).thenReturn("contentSession");
         when(cs.getAuthInfo()).thenReturn(AuthInfoImpl.EMPTY);
+        when(cs.getWorkspaceName()).thenReturn("default");
         root = new MutableRoot(store, new EmptyHook(), "default", new 
Subject(), sp, null, null, cs);
     }
{code}


> 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