[ http://issues.apache.org/jira/browse/HTTPCLIENT-593?page=comments#action_12425330 ] Oleg Kalnichevski commented on HTTPCLIENT-593: ----------------------------------------------
Chris, (1) Roland does have a point in pointing out that this change _may_ alter behaviour of existing applications, which is certainly not something to be expected from a minor release (2) Subclasses are _always_ expected to correctly implement #hashCode and #equals (3) ProtocolSocketFactory javadoc explicitly states #hashCode and #equals methods should be overridden for correct operation of some connection managers. Having said all that, I am +1 for the change, but will not insist on including the fix into 3.1 unless Roland retracts his -0 Oleg > 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: Nightly Builds, 3.1 Alpha 1 > Reporter: Chris Audley > Priority: Minor > Fix For: 4.0 Alpha 1 > > > 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]