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();
}
}