https://bz.apache.org/bugzilla/show_bug.cgi?id=61022
Bug ID: 61022
Summary: Returning Closed Connections to the Pool
Product: Tomcat Modules
Version: unspecified
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: jdbc-pool
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
The connection pool was returning a closed connection to the pool. The root
cause of this was that my code was accessing the underlying ("real") connection
and closing it. My code snipped follows:
private void onResultSetExhausted() throws SQLException {
if (!getResultSet().isClosed()) {
Statement statement = getResultSet().getStatement();
if (!statement.isClosed()) {
Connection connection = statement.getConnection();
getResultSet().getStatement().close();
if (!connection.isClosed()) {
connection.close();
}
}
getResultSet().close();
}
}
This implies that the problem may be a regression of the problem described in
48392. My proposed solution is to check the real connection state in the
ProxyConnection::invoke method. A snippet of that code is:
if (compare(CLOSE_VAL,method)) {
if (connection==null) return null; //noop for already closed.
PooledConnection poolc = this.connection;
this.connection = null;
if (!poolc.getConnection().isClosed()) { // <-- Added this
pool.returnConnection(poolc);
}
return null;
} else if (compare(TOSTRING_VAL,method)) {
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]