Sebb created POOL-220:
-------------------------

             Summary: PoolableObject#compareTo() is not guaranteed consistent 
with equals
                 Key: POOL-220
                 URL: https://issues.apache.org/jira/browse/POOL-220
             Project: Commons Pool
          Issue Type: Bug
            Reporter: Sebb


PooledObject#compareTo only returns 0 if the getLastRuntime values are equal 
AND the identityHashCodes are equal.

This will work OK for the identity comparison, but is not guaranteed to work in 
all other cases.

It's possible for two distinct objects to have the same identityHashCode. 
If such objects happen to have the same lastRuntime, then compareTo will return 
0, but equals (which defaults to Object#equals) will return false.

It's not very likely, but it is possible.

A simple fix would be to define equals() to return true only in the case that 
the lastRuntime values and identityHashCodes are equal.

Also, the Javadoc for the compareTo method ought to make clear what the 
ordering is intended to achieve.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to