From 2d0e78c7bed76d3dc6bf19ab6bb0bb40a82dc0ee Mon Sep 17 00:00:00 2001 From: dy102 Date: Mon, 13 Oct 2025 18:32:52 +0900 Subject: [PATCH 1/7] [Fix][Connector-V2] Ignore exceptions on JDBC statement close --- .../connectors/seatunnel/jdbc/config/JdbcSinkOptions.java | 2 +- .../executor/BufferReducedBatchStatementExecutor.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcSinkOptions.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcSinkOptions.java index 0c51108833e..eacd23c5995 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcSinkOptions.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/config/JdbcSinkOptions.java @@ -67,7 +67,7 @@ public class JdbcSinkOptions extends JdbcCommonOptions { .withDescription("auto commit"); public static final Option MAX_RETRIES = - Options.key("max_retries").intType().defaultValue(0).withDescription("max_retired"); + Options.key("max_retries").intType().defaultValue(0).withDescription("max_retries"); public static final Option XA_DATA_SOURCE_CLASS_NAME = Options.key("xa_data_source_class_name") diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferReducedBatchStatementExecutor.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferReducedBatchStatementExecutor.java index e10ca18a9a0..bc022b55bd4 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferReducedBatchStatementExecutor.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferReducedBatchStatementExecutor.java @@ -26,6 +26,7 @@ import lombok.NonNull; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import java.sql.Connection; import java.sql.SQLException; @@ -35,6 +36,7 @@ import java.util.function.Function; @RequiredArgsConstructor +@Slf4j public class BufferReducedBatchStatementExecutor implements JdbcBatchStatementExecutor { @NonNull private final JdbcBatchStatementExecutor upsertExecutor; @@ -100,6 +102,8 @@ public void closeStatements() throws SQLException { if (!buffer.isEmpty()) { executeBatch(); } + } catch (JdbcConnectorException e) { + log.error("Failed to execute remaining batch", e); } finally { upsertExecutor.closeStatements(); deleteExecutor.closeStatements(); From cc70aa322133d3a37d62994ac310e4ac7110d50d Mon Sep 17 00:00:00 2001 From: dy102 Date: Mon, 13 Oct 2025 18:50:36 +0900 Subject: [PATCH 2/7] [Fix][Connector-V2] Ignore exception on JDBC statement close --- .../internal/executor/BufferedBatchStatementExecutor.java | 5 +++++ .../executor/InsertOrUpdateBatchStatementExecutor.java | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java index 2ec87c432e5..08cdb3c20e7 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java @@ -17,10 +17,12 @@ package org.apache.seatunnel.connectors.seatunnel.jdbc.internal.executor; +import lombok.extern.slf4j.Slf4j; import org.apache.seatunnel.api.table.type.SeaTunnelRow; import lombok.NonNull; import lombok.RequiredArgsConstructor; +import org.apache.seatunnel.connectors.seatunnel.jdbc.exception.JdbcConnectorException; import java.sql.Connection; import java.sql.SQLException; @@ -29,6 +31,7 @@ import java.util.function.Function; @RequiredArgsConstructor +@Slf4j public class BufferedBatchStatementExecutor implements JdbcBatchStatementExecutor { @NonNull private final JdbcBatchStatementExecutor statementExecutor; @NonNull private final Function valueTransform; @@ -61,6 +64,8 @@ public void closeStatements() throws SQLException { if (!buffer.isEmpty()) { executeBatch(); } + } catch (JdbcConnectorException e) { + log.error("Failed to execute remaining batch", e); } finally { statementExecutor.closeStatements(); } diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java index ae08d027f79..27a33b4e06b 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java @@ -17,6 +17,7 @@ package org.apache.seatunnel.connectors.seatunnel.jdbc.internal.executor; +import lombok.extern.slf4j.Slf4j; import org.apache.seatunnel.api.table.catalog.TableSchema; import org.apache.seatunnel.api.table.type.SeaTunnelRow; import org.apache.seatunnel.common.exception.CommonErrorCodeDeprecated; @@ -36,6 +37,7 @@ import java.util.function.Function; @RequiredArgsConstructor +@Slf4j public class InsertOrUpdateBatchStatementExecutor implements JdbcBatchStatementExecutor { private final StatementFactory existStmtFactory; @@ -121,6 +123,8 @@ public void closeStatements() throws SQLException { if (!submitted) { executeBatch(); } + } catch (JdbcConnectorException e) { + log.error("Failed to execute remaining batch", e); } finally { for (PreparedStatement statement : Arrays.asList(existStatement, insertStatement, updateStatement)) { From 2d3b3ea9ea264d41c92ed59bf71538e6ecfaaacc Mon Sep 17 00:00:00 2001 From: dy102 Date: Mon, 13 Oct 2025 18:53:52 +0900 Subject: [PATCH 3/7] [Fix][Connector-V2] code style --- .../internal/executor/BufferedBatchStatementExecutor.java | 4 ++-- .../executor/InsertOrUpdateBatchStatementExecutor.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java index 08cdb3c20e7..db8ead46e62 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java @@ -17,12 +17,12 @@ package org.apache.seatunnel.connectors.seatunnel.jdbc.internal.executor; -import lombok.extern.slf4j.Slf4j; import org.apache.seatunnel.api.table.type.SeaTunnelRow; +import org.apache.seatunnel.connectors.seatunnel.jdbc.exception.JdbcConnectorException; import lombok.NonNull; import lombok.RequiredArgsConstructor; -import org.apache.seatunnel.connectors.seatunnel.jdbc.exception.JdbcConnectorException; +import lombok.extern.slf4j.Slf4j; import java.sql.Connection; import java.sql.SQLException; diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java index 27a33b4e06b..1d624b70cce 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java @@ -17,7 +17,6 @@ package org.apache.seatunnel.connectors.seatunnel.jdbc.internal.executor; -import lombok.extern.slf4j.Slf4j; import org.apache.seatunnel.api.table.catalog.TableSchema; import org.apache.seatunnel.api.table.type.SeaTunnelRow; import org.apache.seatunnel.common.exception.CommonErrorCodeDeprecated; @@ -26,6 +25,7 @@ import lombok.NonNull; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import javax.annotation.Nullable; From b7dacb5b222e535dbfaf46a1e92e9842e4a1c92b Mon Sep 17 00:00:00 2001 From: dy102 Date: Mon, 20 Oct 2025 17:23:10 +0900 Subject: [PATCH 4/7] [Fix][Connector-V2] Ignore JdbcConnectorException on JDBC statement close --- .../connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java | 4 ++++ .../executor/BufferReducedBatchStatementExecutor.java | 2 -- .../internal/executor/BufferedBatchStatementExecutor.java | 3 --- .../executor/InsertOrUpdateBatchStatementExecutor.java | 2 -- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java index 1097c2dcda2..d0f30390dff 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java @@ -196,6 +196,8 @@ public synchronized void close() { } } catch (SQLException e) { LOG.warn("Close JDBC writer failed.", e); + } catch (JdbcConnectorException e) { + LOG.error("Failed to execute remaining batch", e); } } connectionProvider.closeConnection(); @@ -210,6 +212,8 @@ public void updateExecutor(boolean reconnect) throws SQLException, ClassNotFound throw e; } LOG.error("Close JDBC statement failed on reconnect.", e); + } catch (JdbcConnectorException e) { + LOG.error("Failed to execute remaining batch", e); } jdbcStatementExecutor.prepareStatements( reconnect diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferReducedBatchStatementExecutor.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferReducedBatchStatementExecutor.java index bc022b55bd4..26afe72c4b2 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferReducedBatchStatementExecutor.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferReducedBatchStatementExecutor.java @@ -102,8 +102,6 @@ public void closeStatements() throws SQLException { if (!buffer.isEmpty()) { executeBatch(); } - } catch (JdbcConnectorException e) { - log.error("Failed to execute remaining batch", e); } finally { upsertExecutor.closeStatements(); deleteExecutor.closeStatements(); diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java index db8ead46e62..2eea7c9f0fe 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java @@ -18,7 +18,6 @@ package org.apache.seatunnel.connectors.seatunnel.jdbc.internal.executor; import org.apache.seatunnel.api.table.type.SeaTunnelRow; -import org.apache.seatunnel.connectors.seatunnel.jdbc.exception.JdbcConnectorException; import lombok.NonNull; import lombok.RequiredArgsConstructor; @@ -64,8 +63,6 @@ public void closeStatements() throws SQLException { if (!buffer.isEmpty()) { executeBatch(); } - } catch (JdbcConnectorException e) { - log.error("Failed to execute remaining batch", e); } finally { statementExecutor.closeStatements(); } diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java index 1d624b70cce..4c372947a1c 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java @@ -123,8 +123,6 @@ public void closeStatements() throws SQLException { if (!submitted) { executeBatch(); } - } catch (JdbcConnectorException e) { - log.error("Failed to execute remaining batch", e); } finally { for (PreparedStatement statement : Arrays.asList(existStatement, insertStatement, updateStatement)) { From bbecded8e76673a4ad51e9095b80b3cf4d6ab678 Mon Sep 17 00:00:00 2001 From: dy102 Date: Mon, 20 Oct 2025 17:28:33 +0900 Subject: [PATCH 5/7] [Fix][Connector-V2] Ignore JdbcConnectorException on JDBC statement close --- .../internal/executor/BufferReducedBatchStatementExecutor.java | 2 -- .../jdbc/internal/executor/BufferedBatchStatementExecutor.java | 2 -- .../internal/executor/InsertOrUpdateBatchStatementExecutor.java | 2 -- 3 files changed, 6 deletions(-) diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferReducedBatchStatementExecutor.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferReducedBatchStatementExecutor.java index 26afe72c4b2..e10ca18a9a0 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferReducedBatchStatementExecutor.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferReducedBatchStatementExecutor.java @@ -26,7 +26,6 @@ import lombok.NonNull; import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import java.sql.Connection; import java.sql.SQLException; @@ -36,7 +35,6 @@ import java.util.function.Function; @RequiredArgsConstructor -@Slf4j public class BufferReducedBatchStatementExecutor implements JdbcBatchStatementExecutor { @NonNull private final JdbcBatchStatementExecutor upsertExecutor; diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java index 2eea7c9f0fe..2ec87c432e5 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/BufferedBatchStatementExecutor.java @@ -21,7 +21,6 @@ import lombok.NonNull; import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import java.sql.Connection; import java.sql.SQLException; @@ -30,7 +29,6 @@ import java.util.function.Function; @RequiredArgsConstructor -@Slf4j public class BufferedBatchStatementExecutor implements JdbcBatchStatementExecutor { @NonNull private final JdbcBatchStatementExecutor statementExecutor; @NonNull private final Function valueTransform; diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java index 4c372947a1c..ae08d027f79 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/executor/InsertOrUpdateBatchStatementExecutor.java @@ -25,7 +25,6 @@ import lombok.NonNull; import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import javax.annotation.Nullable; @@ -37,7 +36,6 @@ import java.util.function.Function; @RequiredArgsConstructor -@Slf4j public class InsertOrUpdateBatchStatementExecutor implements JdbcBatchStatementExecutor { private final StatementFactory existStmtFactory; From 298da57a1f76dbd9b7ee7e05fe76a52bf99d0576 Mon Sep 17 00:00:00 2001 From: dy102 Date: Mon, 20 Oct 2025 17:29:33 +0900 Subject: [PATCH 6/7] [Fix][Connector-V2] Ignore JdbcConnectorException on JDBC statement close --- .../connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java index d0f30390dff..7f7004304ce 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java @@ -197,7 +197,7 @@ public synchronized void close() { } catch (SQLException e) { LOG.warn("Close JDBC writer failed.", e); } catch (JdbcConnectorException e) { - LOG.error("Failed to execute remaining batch", e); + LOG.warn("Failed to execute remaining batch", e); } } connectionProvider.closeConnection(); @@ -213,7 +213,7 @@ public void updateExecutor(boolean reconnect) throws SQLException, ClassNotFound } LOG.error("Close JDBC statement failed on reconnect.", e); } catch (JdbcConnectorException e) { - LOG.error("Failed to execute remaining batch", e); + LOG.warn("Failed to execute remaining batch", e); } jdbcStatementExecutor.prepareStatements( reconnect From 005a600718ac996969abae2ece32c37602db949a Mon Sep 17 00:00:00 2001 From: dy102 Date: Mon, 3 Nov 2025 19:18:46 +0900 Subject: [PATCH 7/7] [Fix][Connector-V2] Ignore JdbcConnectorException on JDBC statement close --- .../seatunnel/jdbc/internal/JdbcOutputFormat.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java index 7f7004304ce..7c184c9f8da 100644 --- a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java +++ b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/JdbcOutputFormat.java @@ -194,10 +194,8 @@ public synchronized void close() { if (jdbcStatementExecutor != null) { jdbcStatementExecutor.closeStatements(); } - } catch (SQLException e) { + } catch (SQLException | JdbcConnectorException e) { LOG.warn("Close JDBC writer failed.", e); - } catch (JdbcConnectorException e) { - LOG.warn("Failed to execute remaining batch", e); } } connectionProvider.closeConnection(); @@ -207,13 +205,11 @@ public synchronized void close() { public void updateExecutor(boolean reconnect) throws SQLException, ClassNotFoundException { try { jdbcStatementExecutor.closeStatements(); - } catch (SQLException e) { + } catch (SQLException | JdbcConnectorException e) { if (!reconnect) { throw e; } LOG.error("Close JDBC statement failed on reconnect.", e); - } catch (JdbcConnectorException e) { - LOG.warn("Failed to execute remaining batch", e); } jdbcStatementExecutor.prepareStatements( reconnect