|
|
|
@ -147,6 +147,26 @@ public abstract class ConnectionProxy implements IHikariConnectionProxy
|
|
|
|
|
return statement;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private final void closeOpenStatements()
|
|
|
|
|
{
|
|
|
|
|
final int size = openStatements.size();
|
|
|
|
|
if (size > 0) {
|
|
|
|
|
for (int i = 0; i < size; i++) {
|
|
|
|
|
try {
|
|
|
|
|
final Statement statement = openStatements.get(i);
|
|
|
|
|
if (statement != null) {
|
|
|
|
|
statement.close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (SQLException e) {
|
|
|
|
|
checkException(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
openStatements.clear();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// **********************************************************************
|
|
|
|
|
// "Overridden" java.sql.Connection Methods
|
|
|
|
|
// **********************************************************************
|
|
|
|
@ -158,21 +178,9 @@ public abstract class ConnectionProxy implements IHikariConnectionProxy
|
|
|
|
|
if (delegate != ClosedConnection.CLOSED_CONNECTION) {
|
|
|
|
|
leakTask.cancel();
|
|
|
|
|
|
|
|
|
|
final int size = openStatements.size();
|
|
|
|
|
if (size > 0) {
|
|
|
|
|
for (int i = 0; i < size; i++) {
|
|
|
|
|
try {
|
|
|
|
|
openStatements.get(i).close();
|
|
|
|
|
}
|
|
|
|
|
catch (SQLException e) {
|
|
|
|
|
checkException(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
openStatements.clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
closeOpenStatements();
|
|
|
|
|
|
|
|
|
|
if (isCommitStateDirty) {
|
|
|
|
|
lastAccess = clockSource.currentTime();
|
|
|
|
|
|
|
|
|
|