This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 039d316d8fb CAMEL-21845: camel-sql - Only commit/rollback if auto 
commit has been true (#17734)
039d316d8fb is described below

commit 039d316d8fb67a99bd681b644f577022e0d32f2e
Author: Benjamin Graf <gra...@users.noreply.github.com>
AuthorDate: Fri Apr 18 20:15:44 2025 +0200

    CAMEL-21845: camel-sql - Only commit/rollback if auto commit has been true 
(#17734)
---
 .../src/main/java/org/apache/camel/component/sql/SqlProducer.java | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java
 
b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java
index 3a771c290a4..53c21d34285 100644
--- 
a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java
+++ 
b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java
@@ -159,7 +159,7 @@ public class SqlProducer extends DefaultProducer {
                     boolean restoreAutoCommit = true;
 
                     if (batch) {
-                        if (manualCommit) {
+                        if (!exchange.isTransacted() && manualCommit) {
                             // optimize batch by turning off auto-commit
                             restoreAutoCommit = 
ps.getConnection().getAutoCommit();
                             ps.getConnection().setAutoCommit(false);
@@ -171,18 +171,18 @@ public class SqlProducer extends DefaultProducer {
                                 total += count;
                             }
                             
exchange.getIn().setHeader(SqlConstants.SQL_UPDATE_COUNT, total);
-                            if (manualCommit) {
+                            if (!exchange.isTransacted() && manualCommit) {
                                 // optimize batch by commit after done
                                 ps.getConnection().commit();
                             }
                         } catch (Exception e) {
-                            if (manualCommit) {
+                            if (!exchange.isTransacted() && manualCommit) {
                                 // we failed so rollback
                                 ps.getConnection().rollback();
                             }
                             throw e;
                         } finally {
-                            if (manualCommit && restoreAutoCommit) {
+                            if (!exchange.isTransacted() && manualCommit && 
restoreAutoCommit) {
                                 // restore auto commit on connection as it may 
be used
                                 // in another kind of query (connection 
pooling)
                                 ps.getConnection().setAutoCommit(true);

Reply via email to