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");
+ }
}