db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel John Debrunner (JIRA)" <j...@apache.org>
Subject [jira] Created: (DERBY-3401) Removing a ConnectionEventListener from a PooledConnection during its connectionClosed() callback causes other ConnectionEventListener callbacks to be missed
Date Fri, 08 Feb 2008 20:27:08 GMT
Removing a ConnectionEventListener from a PooledConnection during its connectionClosed() callback
causes other ConnectionEventListener callbacks to be missed
-------------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: DERBY-3401
                 URL: https://issues.apache.org/jira/browse/DERBY-3401
             Project: Derby
          Issue Type: Bug
          Components: JDBC
    Affects Versions: 10.4.0.0
            Reporter: Daniel John Debrunner
            Priority: Minor


A ConnectionEventListener should be able to remove itself as a listener during a callback
without affecting any other callbacks.

DataSourceTest.subtestPooledRemoveListenerOnClose() tests the scenario but calls to it will
be commented out in the fixture testPooledReuseOnClose() (using this bug number).

Issue is that such a remove will modify the eventListener Vector in EmbedPooledConnection
while it is being enumerated over.
An idea for a fix would be to first change the Vector over to a new-style collection, such
as an implementation of List, then work off a copy of the collection when calling the callbacks.
I don't think eventListener needs to be a synchronized collection, its access should be already
synchronized on EmbedPooledConnection.

I imagine that a similar issue exists for adding a new callback during callback processing,
fixing this bug would fix that issue as well though no tests have been written for the add
case.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message