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

Phil Steitz closed DBCP-329.
----------------------------

    Resolution: Fixed

When you invoke the close method on a connection managed by DBCP, you are 
asking DBCP to return it to the pool.  Before returning a connection to the 
pool, DBCP  issues the JDBC driver call, _conn.isClosed() on the underlying 
physical connection to make sure that it is still open.  If the driver returns 
false, something bad has happened, because DBCP thinks the connection is open 
and the driver is reporting that it is closed.  In this case, the exception 
that you are observing is thrown.  Your own exception handler is masking the 
exception that your code encountered trying to use the connection that had been 
closed on the server side.

See http://markmail.org/message/c2gx2xuzum4pv743 for discussion of a similar 
issue.  If anyone feels that DBCP should be modified to silently dispose of bad 
connections returned to the pool, please reopen DBCP-193.  

> SQLException: Already closed.
> -----------------------------
>
>                 Key: DBCP-329
>                 URL: https://issues.apache.org/jira/browse/DBCP-329
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.4
>         Environment: MySQL
>            Reporter: Hontvari Jozsef
>
> After upgrading to 1.4 I see such exceptions logged:
> java.sql.SQLException: Already closed.
>       at 
> org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:114)
>       at 
> org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:191)
>       ...
> This should never happen. According to the Connection.close() javadoc: 
> "Calling the method close on a Connection object that is already closed is a 
> no-op."
>  
> Moreover, I am pretty sure that our code does not close the connection twice. 
> But because the close() is called in a finally block, it is possible that 
> this exception hides another exception. Unfortunately I cannot reproduce it, 
> even though it occurs regularly.

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

Reply via email to