You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by ha...@apache.org on 2022/02/15 15:32:38 UTC

[hop] branch master updated: HOP-3760 Allow database connections to be garbage collected properly

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/hop.git


The following commit(s) were added to refs/heads/master by this push:
     new d23e935  HOP-3760 Allow database connections to be garbage collected properly
     new a963e29  Merge pull request #1368 from sramazzina/MEMORYLEAK
d23e935 is described below

commit d23e935b975ea4d34f9755a94b965a66e1e345cd
Author: Sergio Ramazzina <se...@serasoft.it>
AuthorDate: Tue Feb 15 16:02:21 2022 +0100

    HOP-3760 Allow database connections to be garbage collected properly
---
 .../apache/hop/pipeline/transforms/databasejoin/DatabaseJoin.java  | 1 +
 .../hop/pipeline/transforms/databaselookup/DatabaseLookup.java     | 1 +
 .../java/org/apache/hop/pipeline/transforms/delete/Delete.java     | 5 ++++-
 .../apache/hop/pipeline/transforms/insertupdate/InsertUpdate.java  | 5 ++++-
 .../org/apache/hop/pipeline/transforms/tableinput/TableInput.java  | 1 +
 .../apache/hop/pipeline/transforms/tableoutput/TableOutput.java    | 1 +
 .../java/org/apache/hop/pipeline/transforms/update/Update.java     | 7 ++++++-
 7 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/plugins/transforms/databasejoin/src/main/java/org/apache/hop/pipeline/transforms/databasejoin/DatabaseJoin.java b/plugins/transforms/databasejoin/src/main/java/org/apache/hop/pipeline/transforms/databasejoin/DatabaseJoin.java
index 163f061..3d42085 100644
--- a/plugins/transforms/databasejoin/src/main/java/org/apache/hop/pipeline/transforms/databasejoin/DatabaseJoin.java
+++ b/plugins/transforms/databasejoin/src/main/java/org/apache/hop/pipeline/transforms/databasejoin/DatabaseJoin.java
@@ -290,6 +290,7 @@ public class DatabaseJoin extends BaseTransform<DatabaseJoinMeta, DatabaseJoinDa
     try {
     if (data.db != null) {
       data.db.disconnect();
+      data.db = null;
     }
 
     super.dispose();
diff --git a/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookup.java b/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookup.java
index fd67aee..79c412b 100644
--- a/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookup.java
+++ b/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookup.java
@@ -681,6 +681,7 @@ public class DatabaseLookup extends BaseTransform<DatabaseLookupMeta, DatabaseLo
     // Recover memory immediately, allow in-memory data to be garbage collected
     //
     data.cache = null;
+    data.db = null;
 
     super.dispose();
   }
diff --git a/plugins/transforms/delete/src/main/java/org/apache/hop/pipeline/transforms/delete/Delete.java b/plugins/transforms/delete/src/main/java/org/apache/hop/pipeline/transforms/delete/Delete.java
index 2e5d4eb..8dbe5a6 100644
--- a/plugins/transforms/delete/src/main/java/org/apache/hop/pipeline/transforms/delete/Delete.java
+++ b/plugins/transforms/delete/src/main/java/org/apache/hop/pipeline/transforms/delete/Delete.java
@@ -291,7 +291,10 @@ public class Delete extends BaseTransform<DeleteMeta, DeleteData>
                 + e.toString());
         setErrors(1);
       } finally {
-        if (dispose) data.db.disconnect();
+        if (dispose) {
+          data.db.disconnect();
+          data.db = null;
+        }
       }
     }
   }
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 bab52e0..51000c9 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
@@ -563,7 +563,10 @@ public class InsertUpdate extends BaseTransform<InsertUpdateMeta, InsertUpdateDa
                 + e.toString());
         setErrors(1);
       } finally {
-        if (dispose) data.db.disconnect();
+        if (dispose) {
+          data.db.disconnect();
+          data.db = null;
+        }
       }
     }
   }
diff --git a/plugins/transforms/tableinput/src/main/java/org/apache/hop/pipeline/transforms/tableinput/TableInput.java b/plugins/transforms/tableinput/src/main/java/org/apache/hop/pipeline/transforms/tableinput/TableInput.java
index b56b527..ed04d16 100644
--- a/plugins/transforms/tableinput/src/main/java/org/apache/hop/pipeline/transforms/tableinput/TableInput.java
+++ b/plugins/transforms/tableinput/src/main/java/org/apache/hop/pipeline/transforms/tableinput/TableInput.java
@@ -286,6 +286,7 @@ public class TableInput extends BaseTransform<TableInputMeta, TableInputData>
     } finally {
       if (data.db != null) {
         data.db.disconnect();
+        data.db = null;
       }
     }
 
diff --git a/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutput.java b/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutput.java
index 6a71262..73150a7 100644
--- a/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutput.java
+++ b/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutput.java
@@ -576,6 +576,7 @@ public class TableOutput extends BaseTransform<TableOutputMeta, TableOutputData>
         emptyAndCommitBatchBuffers(true);
       } finally {
         data.db.disconnect();
+        data.db = null;
       }
       super.dispose();
     }
diff --git a/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/Update.java b/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/Update.java
index ba408db..d6034c7 100644
--- a/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/Update.java
+++ b/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/Update.java
@@ -569,6 +569,8 @@ public class Update extends BaseTransform<UpdateMeta, UpdateData>
         if (dispose) {
           data.db.closePreparedStatement(data.prepStatementUpdate);
           data.db.closePreparedStatement(data.prepStatementLookup);
+          data.prepStatementUpdate = null;
+          data.prepStatementLookup = null;
         }
       } catch (HopDatabaseException e) {
         logError(
@@ -578,7 +580,10 @@ public class Update extends BaseTransform<UpdateMeta, UpdateData>
                 + e.toString());
         setErrors(1);
       } finally {
-        if (dispose) data.db.disconnect();
+        if (dispose) {
+          data.db.disconnect();
+          data.db = null;
+        }
       }
     }
   }