ProtocolSocketFactory equals and hashCode don't support subclassing
-------------------------------------------------------------------

                 Key: HTTPCLIENT-593
                 URL: http://issues.apache.org/jira/browse/HTTPCLIENT-593
             Project: HttpComponents HttpClient
          Issue Type: Bug
          Components: HttpClient
    Affects Versions: 3.1 Alpha 1, Nightly Builds
            Reporter: Chris Audley
            Priority: Minor


In the implemenation of equals and hashCode for the classes
org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory
org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory

The implementation of equals and hashCode attempts to make all instances of the 
classes equal.  However, the manner in which the methods are coded makes it 
necessary for any subclass to implement equals and hashCode themselves.  A 
minor change to the methods in these classes will make possible to subclass 
these factories without re-implementing the equals and hashCode.  The method 
equals should be written as

        return ((obj != null) && obj.getClass().equals(getClass()));

rather than

        return ((obj != null) && 
obj.getClass().equals(DefaultProtocolSocketFactory.class));

And similarly, the hashCode method should be

        return getClass().hashCode();

rather than

        return DefaultProtocolSocketFactory.class.hashCode();

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to