jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tobias Bocanegra (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JCR-3654) Error MembershipCache if a group node contains MV property
Date Fri, 23 Aug 2013 05:09:53 GMT

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

Tobias Bocanegra commented on JCR-3654:
---------------------------------------

Note that the collectDeclaredMembershipFromTraversal() is only invoked if the authorizable
node cannot be found via weakreference lookup. this is the case if the authorizable does not
exist yet (or anymore) in the session where the lookup is performed. this usually only happens
during concurrent user/group updates.

                
> Error MembershipCache if a group node contains MV property
> ----------------------------------------------------------
>
>                 Key: JCR-3654
>                 URL: https://issues.apache.org/jira/browse/JCR-3654
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: security
>    Affects Versions: 2.2, 2.3, 2.4, 2.5, 2.6, 2.7
>            Reporter: Tobias Bocanegra
>            Assignee: Tobias Bocanegra
>
> the MembershipCache.collectDeclaredMembershipFromTraversal traverses the entire /home/groups
tree and analyzes all properties if they contain a reference to the authorizable node. this
is very suboptimal and in case there is a multivalue, this even throws an error.
> suggest:
> * do an intelligent traversal instead using the TraversingItemVisitor.
> * be cautious not to read MV properties unchecked.
> Potential error: 
> com.day.crx.security.ldap.LDAPLoginModule Cause: javax.jcr.ValueFormatException: propert
> y /home/groups/a/administrators/jcr:mixinTypes is a multi-valued property, so it's values
can only be retrieved as an array
> at org.apache.jackrabbit.core.PropertyImpl.internalGetValue(PropertyImpl.java:483)
> at org.apache.jackrabbit.core.PropertyImpl.getValue(PropertyImpl.java:510)
> at org.apache.jackrabbit.core.PropertyImpl.getString(PropertyImpl.java:520)
> at org.apache.jackrabbit.core.security.user.MembershipCache$1.entering(MembershipCache.java:363)
> at javax.jcr.util.TraversingItemVisitor.visit(TraversingItemVisitor.java:160)
> at org.apache.jackrabbit.core.PropertyImpl.accept(PropertyImpl.java:904)
> at javax.jcr.util.TraversingItemVisitor.visit(TraversingItemVisitor.java:187)
> at org.apache.jackrabbit.core.NodeImpl.accept(NodeImpl.java:1720)
> at javax.jcr.util.TraversingItemVisitor.visit(TraversingItemVisitor.java:191)
> at org.apache.jackrabbit.core.NodeImpl.accept(NodeImpl.java:1720)
> at javax.jcr.util.TraversingItemVisitor.visit(TraversingItemVisitor.java:191)
> at org.apache.jackrabbit.core.security.user.MembershipCache.collectDeclaredMembershipFromTraversal(MembershipCache.java:374)
> at org.apache.jackrabbit.core.security.user.MembershipCache.collectDeclaredMembership(MembershipCache.java:200)
> at org.apache.jackrabbit.core.security.user.AuthorizableImpl.collectMembership(AuthorizableImpl.java:358)
> at org.apache.jackrabbit.core.security.user.AuthorizableImpl.declaredMemberOf(AuthorizableImpl.java:89)
> at org.apache.jackrabbit.core.security.user.UserImpl.declaredMemberOf(UserImpl.java:38)

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

Mime
View raw message