private final Class<? extends Statement> recordTargetClass;
private boolean closed;
private boolean poolable;
private int fetchSize;
protected abstract void clearRouteStatements();
<BUG>@Override
public final void close() throws SQLException {
for (Statement each : getRoutedStatements()) {
each.close();
}
closed = true;</BUG>
clearRouteStatements();

private final Class<? extends Statement> recordTargetClass;
private boolean closed;
private boolean poolable;
private int fetchSize;
protected abstract void clearRouteStatements();
@Override
@SuppressWarnings("unchecked")
public final void close() throws SQLException {
SQLUtil.safeInvoke(getRoutedStatements(), new ThrowableSQLExceptionMethod() {
@Override
public void apply(final Object object) throws SQLException {
((Statement) object).close();
