This sounds like an honest bug that should be fixed, backwards
compatibility be damned. I don't see how the old behavior is useful for
anything other than connection starvation or some other strange behavior.

On 7 June 2018 at 10:44, Gary Gregory <garydgreg...@gmail.com> wrote:

> Hi All:
>
> I just ran into a case where different instances of subclasses
> of DelegatingConnection like PoolGuardConnectionWrapper and ConnectionImpl
> are used as keys in a Map (Map<java.sql.Connection, Foo>)
>
> The problem is that when you borrow a Connection out of a pool, you get a
> new PoolGuardConnectionWrapper, so that the Map in the eventual call site
> grows and grows because the intention is that the Map key should be the
> same when you borrow the same underlying Connection later.
>
> If DelegatingConnection implemented hashCode() and equals() to account for
> some or all of its instance variables, then one could use
> DelegatingConnection instances as keys in a Map with the behavior I expect,
> YMMV.
>
> The issue is that implementing hashCode() and equals() where we did not
> before could have unexpected side-effects for existing applications.
>
> Thoughts?
>
> Gary
>



-- 
Matt Sicker <boa...@gmail.com>

Reply via email to