[ https://issues.apache.org/jira/browse/DBCP-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12850940#action_12850940 ]
Paul Benedict commented on DBCP-329: ------------------------------------ {quote} 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." {quote} I grant you that, but you're reading the spec wrong. If you already called close() on the socket, then calling it again should do nothing. However, your situation is different: the other side of the socket closed the socket. Java has no way of knowing whether that occurred except by reading or writing the socket again and then failing. Google this subject and you will find the same answer. > 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.