angela created OAK-3510:
---------------------------

             Summary: Troublesome ExternalIdentityRef.equals(Object) 
implementation
                 Key: OAK-3510
                 URL: https://issues.apache.org/jira/browse/OAK-3510
             Project: Jackrabbit Oak
          Issue Type: Bug
          Components: auth-external
            Reporter: angela


in the light of OAK-3508 i looked at the {{ExternalIdentifyRef}} class and 
found the following implementation of {{Object.equals(Object)}}:

{code}
public boolean equals(Object o) {
        try {
            // assuming that we never compare other types of classes
            return this == o || string.equals(((ExternalIdentityRef) o).string);
        } catch (Exception e) {
            return false;
        }
    }
{code}

since this class is public and exported as part of a public API, i don't think 
the assumption made in the code is justified. also i would argue that catching 
{{Exception}} is bad style as is exception driven development. in this 
particular case it was IMHO perfectly trivial to just get rid of the catch 
clause altogether.



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

Reply via email to