From 0d21de18e44cf399b34ae3e839558e8191e6db1e Mon Sep 17 00:00:00 2001 From: Claus Nagel Date: Tue, 14 Jan 2025 06:57:58 +0100 Subject: [PATCH] minor fix --- .../cli/importer/duplicate/DuplicateFinder.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/citydb-cli/src/main/java/org/citydb/cli/importer/duplicate/DuplicateFinder.java b/citydb-cli/src/main/java/org/citydb/cli/importer/duplicate/DuplicateFinder.java index b4e93cf..6252100 100644 --- a/citydb-cli/src/main/java/org/citydb/cli/importer/duplicate/DuplicateFinder.java +++ b/citydb-cli/src/main/java/org/citydb/cli/importer/duplicate/DuplicateFinder.java @@ -27,10 +27,7 @@ import org.citydb.sqlbuilder.query.Select; import org.citydb.sqlbuilder.schema.Table; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Types; +import java.sql.*; import java.util.Collections; import java.util.HashSet; import java.util.Map; @@ -40,6 +37,7 @@ public class DuplicateFinder { private final Map objectIds; private final Map databaseIds; private final int batchSize; + private final Connection connection; private final PreparedStatement stmt; private final Set batches = new HashSet<>(); @@ -48,6 +46,7 @@ public class DuplicateFinder { this.databaseIds = databaseIds; batchSize = adapter.getSchemaAdapter().getMaximumNumberOfItemsForInOperator(); + connection = adapter.getPool().getConnection(); Table table = Table.of(org.citydb.database.schema.Table.FEATURE.getName(), adapter.getConnectionDetails().getSchema()); Select select = Select.newInstance() @@ -55,7 +54,7 @@ public class DuplicateFinder { .from(table) .where(table.column("objectid").in(Collections.nCopies(batchSize, Placeholder.empty())) .and(table.column("termination_date").isNull())); - stmt = adapter.getPool().getConnection().prepareStatement(select.toSql()); + stmt = connection.prepareStatement(select.toSql()); } void process(Feature feature) throws SQLException { @@ -108,7 +107,11 @@ private void executeBatch() throws SQLException { } void close() throws SQLException { - executeBatch(); - stmt.close(); + try { + executeBatch(); + stmt.close(); + } finally { + connection.close(); + } } }