[ http://issues.apache.org/jira/browse/DBCP-28?page=comments#action_12424060 ] Andrei Solntsev commented on DBCP-28: -------------------------------------
Sorry about confusion with versions. This bug is present in DBCP 1.2.1, but it's fixed in DBCP 1.2.2 (which is not officially released yet). > [dbcp][PATCH] Connection leak in PoolableConnection.close() (Oracle 10g > driver) > ------------------------------------------------------------------------------- > > Key: DBCP-28 > URL: http://issues.apache.org/jira/browse/DBCP-28 > Project: Commons Dbcp > Issue Type: Bug > Affects Versions: 1.2 Final > Environment: Operating System: All > Platform: PC > Reporter: Dirk Verbeeck > Fix For: 1.2.2 > > Attachments: PoolableConnection.patch, > ShowsBasicDataSourceBadNumActiveIfNoCheckForIsClosedAndDoubleClose.java, > ShowsLeaksIfCheckForIsClosed.java, TestPoolableConnection.patch, > TestUtils.java > > > Mail from Hugh Winkler on commons-dev (15-2-2005) > -------------------------------------------------- > PoolableConnection.close() does logic equivalent to : > if ( isClosed()){ > throw new SQLException(.); > } else { > _pool.returnObject(this); > } > The isClosed() method is that of ancestor DelegatingConnection, and it does: > if(_closed || _conn.isClosed()) { > return true; > } > return false; > Now nothing prevents the underlying connection from closing itself; that's > why isClosed() checks _conn.isClosed() -- "did you close yourself while I > wasn't looking?" But in that case PoolableConnection never calls > _pool.returnObject(). > I've got a query in Oracle 10g that causes Oracle's connection to close > itself: the famous "end of file on connection" message causes the connection > to enter the closed state. Doesn't take long to exhaust the pool. > I think the logic we want in PoolableConnection.close() is like so: > if ( _closed ){ // really ask, did *we* close the connection already > throw new SQLException(.); > } else { > _pool.returnObject(this); > } > If I've got some logic wrong please stop me before I deploy that change > here! -- 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]