commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Steitz (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DBCP-3) [dbcp] PoolableConnection.close() won't allow multiple close
Date Sun, 16 Jul 2006 16:37:14 GMT
    [ http://issues.apache.org/jira/browse/DBCP-3?page=comments#action_12421454 ] 
            
Phil Steitz commented on DBCP-3:
--------------------------------

This represents a behavior change that may break some existing code, so fix version is set
to 1.3.  

> [dbcp] PoolableConnection.close() won't allow multiple close
> ------------------------------------------------------------
>
>                 Key: DBCP-3
>                 URL: http://issues.apache.org/jira/browse/DBCP-3
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: Nightly Builds
>         Environment: Operating System: All
> Platform: All
>            Reporter: Adam Jenkins
>             Fix For: 1.3
>
>
> Sun's javadoc for java.sql.Connection.close() specifies that calling close on an
> already closed Connection is a no-op.  However, PoolableConnection.close() (v
> 1.10) throws a SQLException if close() is called on a closed Connection. 
> PoolableConnection.close() should just return if the Connection is already
> closed.  Here is a patch:
> To demonstrate the bug, just obtain an open PoolableConnection and call close()
> on it twice; the second call will produce a SQLException.  According to Sun's
> spec, the second close() should just be a no-op.  The current behaviour is
> preferable to the old behaviour where it returned the Connection to the pool
> twice, but it's still not according to the spec.
> Here's a patch:
> *** PoolableConnection.java.orig        2003-09-15 16:07:53.000000000 -0400
> --- PoolableConnection.java     2003-09-15 16:08:11.000000000 -0400
> ***************
> *** 108,114 ****
>        */
>        public synchronized void close() throws SQLException {
>           if(isClosed()) {
> !             throw new SQLException("Already closed.");
>           } else {
>               try {
>                   _pool.returnObject(this);
> --- 108,114 ----
>        */
>        public synchronized void close() throws SQLException {
>           if(isClosed()) {
> !             return;
>           } else {
>               try {
>                   _pool.returnObject(this);

-- 
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: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message