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

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


The following commit(s) were added to refs/heads/main by this push:
     new ec6be95fd8 Evaluate rows number in a table (ActionEvalTableContent) 
Dialog deletes db connection property on open, fixes  #7675 (#7678)
ec6be95fd8 is described below

commit ec6be95fd854eea29eb8ada443110b9dbe427744
Author: Hans Van Akelyen <[email protected]>
AuthorDate: Wed Jul 29 16:38:03 2026 +0200

    Evaluate rows number in a table (ActionEvalTableContent) Dialog deletes db 
connection property on open, fixes  #7675 (#7678)
---
 .../ActionEvalTableContent.java                    |  6 ++++++
 .../ActionEvalTableContentDialog.java              |  7 +++---
 .../WorkflowActionEvalTableContentTest.java        | 25 ++++++++++++++++++++++
 3 files changed, 34 insertions(+), 4 deletions(-)

diff --git 
a/plugins/actions/evaluatetablecontent/src/main/java/org/apache/hop/workflow/actions/evaluatetablecontent/ActionEvalTableContent.java
 
b/plugins/actions/evaluatetablecontent/src/main/java/org/apache/hop/workflow/actions/evaluatetablecontent/ActionEvalTableContent.java
index bb46f4997f..993c4b975c 100644
--- 
a/plugins/actions/evaluatetablecontent/src/main/java/org/apache/hop/workflow/actions/evaluatetablecontent/ActionEvalTableContent.java
+++ 
b/plugins/actions/evaluatetablecontent/src/main/java/org/apache/hop/workflow/actions/evaluatetablecontent/ActionEvalTableContent.java
@@ -185,6 +185,12 @@ public class ActionEvalTableContent extends ActionBase {
     return successConditionsDesc[i];
   }
 
+  public void setConnection(String connection) {
+    this.connection = connection;
+    // Invalidate the resolved connection, it's looked up again lazily.
+    this.databaseMeta = null;
+  }
+
   public DatabaseMeta getDatabase() {
     if (databaseMeta != null) {
       return databaseMeta;
diff --git 
a/plugins/actions/evaluatetablecontent/src/main/java/org/apache/hop/workflow/actions/evaluatetablecontent/ActionEvalTableContentDialog.java
 
b/plugins/actions/evaluatetablecontent/src/main/java/org/apache/hop/workflow/actions/evaluatetablecontent/ActionEvalTableContentDialog.java
index a5760562a6..ae17fb1ba1 100644
--- 
a/plugins/actions/evaluatetablecontent/src/main/java/org/apache/hop/workflow/actions/evaluatetablecontent/ActionEvalTableContentDialog.java
+++ 
b/plugins/actions/evaluatetablecontent/src/main/java/org/apache/hop/workflow/actions/evaluatetablecontent/ActionEvalTableContentDialog.java
@@ -125,7 +125,8 @@ public class ActionEvalTableContentDialog extends 
ActionDialog {
     changed = action.hasChanged();
 
     // Connection line
-    wConnection = addConnectionLine(shell, wSpacer, action.getDatabase(), 
lsMod);
+    DatabaseMeta databaseMeta = 
getWorkflowMeta().findDatabase(action.getConnection(), variables);
+    wConnection = addConnectionLine(shell, wSpacer, databaseMeta, lsMod);
 
     // Schema name line
     wlSchemaName = new Label(shell, SWT.RIGHT);
@@ -594,9 +595,7 @@ public class ActionEvalTableContentDialog extends 
ActionDialog {
   public void getData() {
     wName.setText(Const.NVL(action.getName(), ""));
 
-    if (action.getDatabase() != null) {
-      wConnection.setText(action.getDatabase().getName());
-    }
+    wConnection.setText(Const.NVL(action.getConnection(), ""));
 
     if (action.getSchemaname() != null) {
       wSchemaName.setText(action.getSchemaname());
diff --git 
a/plugins/actions/evaluatetablecontent/src/test/java/org/apache/hop/workflow/actions/evaluatetablecontent/WorkflowActionEvalTableContentTest.java
 
b/plugins/actions/evaluatetablecontent/src/test/java/org/apache/hop/workflow/actions/evaluatetablecontent/WorkflowActionEvalTableContentTest.java
index b748ad1d1b..79739eb366 100644
--- 
a/plugins/actions/evaluatetablecontent/src/test/java/org/apache/hop/workflow/actions/evaluatetablecontent/WorkflowActionEvalTableContentTest.java
+++ 
b/plugins/actions/evaluatetablecontent/src/test/java/org/apache/hop/workflow/actions/evaluatetablecontent/WorkflowActionEvalTableContentTest.java
@@ -19,6 +19,8 @@ package org.apache.hop.workflow.actions.evaluatetablecontent;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.mock;
@@ -217,4 +219,27 @@ class WorkflowActionEvalTableContentTest {
     assertFalse(res.isResult(), "Eval number of rows should fail");
     assertEquals(1, res.getNrErrors(), "Apparently there should be an error");
   }
+
+  @Test
+  void testConnectionNameIsKept() {
+    // The connection name is the persisted property: it has to survive 
without a metadata
+    // provider being available to resolve it into a DatabaseMeta.
+    String connectionName = "my-connection";
+    action.setDatabaseMeta(null);
+    action.setConnection(connectionName);
+
+    assertEquals(connectionName, action.getConnection());
+    assertNull(action.getDatabase(), "Without a metadata provider nothing can 
be resolved");
+    assertEquals(
+        connectionName, action.getConnection(), "Resolving must not clear the 
connection name");
+  }
+
+  @Test
+  void testSetConnectionInvalidatesResolvedDatabase() {
+    assertNotNull(action.getDatabase());
+
+    action.setConnection("another-connection");
+
+    assertNull(action.getDatabase(), "The previously resolved connection has 
to be discarded");
+  }
 }

Reply via email to