[ 
https://issues.apache.org/jira/browse/DBCP-358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Thomas resolved DBCP-358.
------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 1.4.1)
                       (was: 1.3.1)
                   2.0

This can't be fixed prior to 2.0 because it requires API changes. It has been 
fixed in 2.0 onwards.

The equals() implementations of the DelegatingXxx classes are now symmetric.
There are some important API changes underlying this fix:
- two DelegatingXxx instances are no longer considered equal if they have the 
same innermost delegate;
- a DelegatingXxx instance is not considered equal to its innermost delegate;
- the getInnermostDelegateInternal() method has been made public (but remains 
part of the internal API) to allow classes extending this implementation to 
access the innermost delegate when required.

> Equals implementations in DelegatingXxx classes are not symmetric
> -----------------------------------------------------------------
>
>                 Key: DBCP-358
>                 URL: https://issues.apache.org/jira/browse/DBCP-358
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.2, 1.2.2, 1.3, 1.4
>            Reporter: Phil Steitz
>             Fix For: 2.0
>
>
> For reasons unclear to me, DelegatingConnection, DelegatingStatement, 
> PoolGuardConnectionWrappers and other DBCP classes implement equals so that 
> the wrapping class is considered equal to its innermost delegate JDBC object. 
>  This makes equals asymmetric when applied to a wrapper and its wrapped JDBC 
> object - wrapper.equals(delegate) returns true, but delegate.equals(wrapper) 
> will in general return false.
> I am pretty sure that DBCP itself does not rely on this bugged behavior, so I 
> am inclined to fix it, making equals an equivalence relation on wrapper 
> instances, with two considered equal iff their innermost delegates are equal. 
>  I can't imagine use cases where the bugged behavior is required.  Can anyone 
> else?



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to