Return-Path: Delivered-To: apmail-jackrabbit-commits-archive@www.apache.org Received: (qmail 64323 invoked from network); 24 Jun 2009 08:38:43 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 24 Jun 2009 08:38:43 -0000 Received: (qmail 89700 invoked by uid 500); 24 Jun 2009 08:38:54 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 89637 invoked by uid 500); 24 Jun 2009 08:38:53 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 89628 invoked by uid 99); 24 Jun 2009 08:38:53 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 24 Jun 2009 08:38:53 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 24 Jun 2009 08:38:51 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 382BA2388882; Wed, 24 Jun 2009 08:38:31 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r787942 - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user: AuthorizableImpl.java GroupImpl.java Date: Wed, 24 Jun 2009 08:38:31 -0000 To: commits@jackrabbit.apache.org From: angela@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090624083831.382BA2388882@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: angela Date: Wed Jun 24 08:38:30 2009 New Revision: 787942 URL: http://svn.apache.org/viewvc?rev=787942&view=rev Log: JCR-2135: UserManagement: make membership a weakreferences Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java?rev=787942&r1=787941&r2=787942&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java Wed Jun 24 08:38:30 2009 @@ -333,7 +333,7 @@ return false; } - Value toRemove = getSession().getValueFactory().createValue(group.getNode()); + Value toRemove = getSession().getValueFactory().createValue(group.getNode(), true); PropertyImpl property = node.getProperty(P_GROUPS); List valList = new ArrayList(Arrays.asList(property.getValues())); if (valList.remove(toRemove)) { Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java?rev=787942&r1=787941&r2=787942&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java Wed Jun 24 08:38:30 2009 @@ -168,7 +168,7 @@ * @throws RepositoryException If an error occurs while collecting the members. */ private Collection getMembers(boolean includeIndirect) throws RepositoryException { - PropertyIterator itr = getNode().getWeakReferences(); + PropertyIterator itr = getNode().getWeakReferences(getSession().getJCRName(P_GROUPS)); Collection members = new HashSet((int) itr.getSize()); while (itr.hasNext()) { NodeImpl n = (NodeImpl) itr.nextProperty().getParent(); @@ -182,6 +182,10 @@ } else if (n.isNodeType(NT_REP_USER)) { User user = userManager.createUser(n); members.add(user); + } else { + // weak-ref property 'rep:groups' that doesn't reside under an + // authorizable node -> doesn't represent a member of this group. + log.debug("Undefined reference to group '" + getID() + "' -> Not included in member set."); } } return members;