angela created OAK-3165:
---------------------------

             Summary: Redundant test for duplicate membership in Group.addMember
                 Key: OAK-3165
                 URL: https://issues.apache.org/jira/browse/OAK-3165
             Project: Jackrabbit Oak
          Issue Type: Improvement
          Components: core
            Reporter: angela
            Assignee: angela
             Fix For: 1.3.4


while looking at the {{MembershipWriter.addMember}} again I spotted the 
following code:

{code}
int bestCount = membershipSizeThreshold;
        PropertyState bestProperty = null;
        Tree bestTree = null;
        while (trees.hasNext()) {
            Tree t = trees.next();
            PropertyState refs = t.getProperty(UserConstants.REP_MEMBERS);
            if (refs != null) {
                int numRefs = 0;
                for (String ref : refs.getValue(Type.WEAKREFERENCES)) {
                    if (ref.equals(memberContentId)) {
                        return false;
                    }
                    numRefs++;
                }
                if (numRefs < bestCount) {
                    bestCount = numRefs;
                    bestProperty = refs;
                    bestTree = t;
                }
            }
        }
{code}

the fact that loop doesn't stop once the first {{bestProperty}} has been found 
and there is an explicit test for the the references already containing the 
contentID of the member to be added, indicates to me that the additional test 
for {{isDeclaredMember(newMember)}} in {{GroupImpl}} is redundant and can be 
omitted.

proposed improvement and some additional test attached as patch.
[~tripod], i would appreciate if you could confirm that my reading of your code 
is correct.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to