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/04 12:45:12 UTC

[hop] branch master updated: HOP-3724 DatabaseConnectionMap takes to memory leaks conditions in long running processes

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 6d25b86  HOP-3724 DatabaseConnectionMap takes to memory leaks conditions in long running processes
     new d03d247  Merge pull request #1331 from sramazzina/MEMORYLEAK
6d25b86 is described below

commit 6d25b865937ddb3420716915a18649d674eddad0
Author: Sergio Ramazzina <se...@serasoft.it>
AuthorDate: Fri Feb 4 11:32:10 2022 +0100

    HOP-3724 DatabaseConnectionMap takes to memory leaks conditions in long running processes
---
 .../java/org/apache/hop/core/database/map/DatabaseConnectionMap.java  | 2 +-
 .../org/apache/hop/pipeline/engines/local/LocalPipelineEngine.java    | 2 ++
 .../org/apache/hop/workflow/engines/local/LocalWorkflowEngine.java    | 4 +++-
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/core/src/main/java/org/apache/hop/core/database/map/DatabaseConnectionMap.java b/core/src/main/java/org/apache/hop/core/database/map/DatabaseConnectionMap.java
index 7cc6c90..bf4355d 100644
--- a/core/src/main/java/org/apache/hop/core/database/map/DatabaseConnectionMap.java
+++ b/core/src/main/java/org/apache/hop/core/database/map/DatabaseConnectionMap.java
@@ -70,7 +70,7 @@ public class DatabaseConnectionMap {
     map.remove(key);
   }
 
-  public static String createEntryKey(
+  private String createEntryKey(
       String connectionGroup, String partitionID, Database database) {
     StringBuilder key = new StringBuilder(connectionGroup);
 
diff --git a/engine/src/main/java/org/apache/hop/pipeline/engines/local/LocalPipelineEngine.java b/engine/src/main/java/org/apache/hop/pipeline/engines/local/LocalPipelineEngine.java
index fc15848..1e7e904 100644
--- a/engine/src/main/java/org/apache/hop/pipeline/engines/local/LocalPipelineEngine.java
+++ b/engine/src/main/java/org/apache/hop/pipeline/engines/local/LocalPipelineEngine.java
@@ -187,6 +187,8 @@ public class LocalPipelineEngine extends Pipeline implements IPipelineEngine<Pip
                       pipeline.getLogChannel().logError(Const.getStackTracker(hde));
                     }
                   }
+                  //Definitely remove the connection reference the connections map
+                  DatabaseConnectionMap.getInstance().removeConnection(group, null, database);
                 }
               });
     }
diff --git a/engine/src/main/java/org/apache/hop/workflow/engines/local/LocalWorkflowEngine.java b/engine/src/main/java/org/apache/hop/workflow/engines/local/LocalWorkflowEngine.java
index 8f95b2f..d73e629 100644
--- a/engine/src/main/java/org/apache/hop/workflow/engines/local/LocalWorkflowEngine.java
+++ b/engine/src/main/java/org/apache/hop/workflow/engines/local/LocalWorkflowEngine.java
@@ -166,7 +166,7 @@ public class LocalWorkflowEngine extends Workflow implements IWorkflowEngine<Wor
                           "Database connection '"
                               + database.getDatabaseMeta().getName()
                               + "' closed successfully!");
-                } catch (HopDatabaseException hde) {
+               } catch (HopDatabaseException hde) {
                    workflow
                       .getLogChannel()
                       .logError(
@@ -175,6 +175,8 @@ public class LocalWorkflowEngine extends Workflow implements IWorkflowEngine<Wor
                               + hde.getMessage());
                   workflow.getLogChannel().logError(Const.getStackTracker(hde));
                 }
+                //Definitely remove the connection reference the connections map
+                DatabaseConnectionMap.getInstance().removeConnection(group, null, database);
               }
             }
           });