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

hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-hop.git


The following commit(s) were added to refs/heads/master by this push:
     new 5388a18  HOP-3230 - Insert/Update transform doesn't properly close 
transactions
     new d30a46f  Merge pull request #1030 from sramazzina/HOP-3230
5388a18 is described below

commit 5388a187c0032f9d37dd0f4335fc0bb1b5f1c29e
Author: sergio.ramazzina <[email protected]>
AuthorDate: Mon Aug 30 18:36:43 2021 +0200

    HOP-3230 - Insert/Update transform doesn't properly close transactions
---
 .../pipeline/transforms/insertupdate/InsertUpdate.java | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git 
a/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdate.java
 
b/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdate.java
index b11fd05..ec3b0d9 100644
--- 
a/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdate.java
+++ 
b/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdate.java
@@ -514,8 +514,17 @@ public class InsertUpdate extends 
BaseTransform<InsertUpdateMeta, InsertUpdateDa
   }
 
   @Override
+  public void batchComplete() throws HopException {
+    commitBatch(false);
+  }
+
+  @Override
   public void dispose() {
+    commitBatch(true);
+    super.dispose();
+  }
 
+  private void commitBatch(boolean dispose) {
     if (data.db != null) {
       try {
         if (!data.db.isAutoCommit()) {
@@ -525,17 +534,18 @@ public class InsertUpdate extends 
BaseTransform<InsertUpdateMeta, InsertUpdateDa
             data.db.rollback();
           }
         }
-        data.db.closeUpdate();
-        data.db.closeInsert();
+        if (dispose) {
+          data.db.closeUpdate();
+          data.db.closeInsert();
+        }
       } catch (HopDatabaseException e) {
         logError(
             BaseMessages.getString(PKG, 
"InsertUpdate.Log.UnableToCommitConnection")
                 + e.toString());
         setErrors(1);
       } finally {
-        data.db.disconnect();
+        if (dispose) data.db.disconnect();
       }
     }
-    super.dispose();
   }
 }

Reply via email to