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 0c2f97a355 Database lookup/Insert update transform should sort field 
names #2468
     new 1374ec6bb8 Merge pull request #2469 from nadment/2468
0c2f97a355 is described below

commit 0c2f97a355695c4dcb23a60f7328d808982af0f7
Author: Nicolas Adment <[email protected]>
AuthorDate: Fri Feb 24 13:49:29 2023 +0100

    Database lookup/Insert update transform should sort field names #2468
---
 .../databaselookup/DatabaseLookupDialog.java       | 147 +++++++---------
 .../messages/messages_de_DE.properties             |   1 -
 .../messages/messages_en_US.properties             |   1 -
 .../messages/messages_es_AR.properties             |   1 -
 .../messages/messages_es_ES.properties             |   1 -
 .../messages/messages_it_IT.properties             |   1 -
 .../messages/messages_ja_JP.properties             |   1 -
 .../messages/messages_ko_KR.properties             |   1 -
 .../messages/messages_pt_BR.properties             |   1 -
 .../messages/messages_pt_PT.properties             |   1 -
 .../messages/messages_zh_CN.properties             |   1 -
 .../insertupdate/InsertUpdateDialog.java           | 190 ++++++++-------------
 .../messages/messages_en_US.properties             |   1 -
 .../messages/messages_es_AR.properties             |   1 -
 .../messages/messages_es_ES.properties             |   1 -
 .../messages/messages_fr_FR.properties             |   1 -
 .../messages/messages_ja_JP.properties             |   1 -
 .../messages/messages_ko_KR.properties             |   1 -
 .../messages/messages_zh_CN.properties             |   1 -
 19 files changed, 128 insertions(+), 226 deletions(-)

diff --git 
a/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookupDialog.java
 
b/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookupDialog.java
index f939b1eaae..a6d324c1a4 100644
--- 
a/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookupDialog.java
+++ 
b/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookupDialog.java
@@ -59,7 +59,6 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 
 public class DatabaseLookupDialog extends BaseTransformDialog implements 
ITransformDialog {
@@ -141,12 +140,12 @@ public class DatabaseLookupDialog extends 
BaseTransformDialog implements ITransf
     shell.setText(BaseMessages.getString(PKG, 
"DatabaseLookupDialog.shell.Title"));
 
     int middle = props.getMiddlePct();
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
 
     // TransformName line
     wlTransformName = new Label(shell, SWT.RIGHT);
-    wlTransformName.setText(
-        BaseMessages.getString(PKG, 
"DatabaseLookupDialog.TransformName.Label"));
+    wlTransformName.setText(BaseMessages.getString(PKG, 
"System.TransformName.Label"));
+    wlTransformName.setToolTipText(BaseMessages.getString(PKG, 
"System.TransformName.Tooltip"));
     PropsUi.setLook(wlTransformName);
     fdlTransformName = new FormData();
     fdlTransformName.left = new FormAttachment(0, 0);
@@ -497,25 +496,12 @@ public class DatabaseLookupDialog extends 
BaseTransformDialog implements ITransf
     wGet.addListener(SWT.Selection, e -> get());
     wGetLU.addListener(SWT.Selection, e -> getlookup());
     wCancel.addListener(SWT.Selection, e -> cancel());
-
-    wbSchema.addSelectionListener(
-        new SelectionAdapter() {
-          @Override
-          public void widgetSelected(SelectionEvent e) {
-            getSchemaNames();
-          }
-        });
-    wbTable.addSelectionListener(
-        new SelectionAdapter() {
-          @Override
-          public void widgetSelected(SelectionEvent e) {
-            getTableName();
-          }
-        });
+    wbSchema.addListener(SWT.Selection, e -> getSchemaName());
+    wbTable.addListener(SWT.Selection, e -> getTableName());
 
     getData();
 
-    setComboValues();
+    setInputFieldCombo();
     setTableFieldCombo();
 
     BaseDialog.defaultShellHandling(shell, c -> ok(), c -> cancel());
@@ -523,73 +509,58 @@ public class DatabaseLookupDialog extends 
BaseTransformDialog implements ITransf
     return transformName;
   }
 
-  private void setComboValues() {
-    Runnable fieldLoader =
-        () -> {
-          try {
-            prevFields = pipelineMeta.getPrevTransformFields(variables, 
transformName);
-          } catch (HopException e) {
-            prevFields = new RowMeta();
-            String msg =
-                BaseMessages.getString(PKG, 
"DatabaseLookupDialog.DoMapping.UnableToFindInput");
-            logError(msg);
-          }
-          String[] prevTransformFieldNames = prevFields.getFieldNames();
-          Arrays.sort(prevTransformFieldNames);
-          for (ColumnInfo colInfo : fieldColumns) {
-            colInfo.setComboValues(prevTransformFieldNames);
-          }
-        };
-    new Thread(fieldLoader).start();
+  private void setInputFieldCombo() {
+    shell.getDisplay().asyncExec(() -> {
+      try {
+        prevFields = pipelineMeta.getPrevTransformFields(variables, 
transformName);
+      } catch (HopException e) {
+        prevFields = new RowMeta();
+        String msg =
+            BaseMessages.getString(PKG, 
"DatabaseLookupDialog.DoMapping.UnableToFindInput");
+        logError(msg);
+      }
+      String[] fieldNames = Const.sortStrings(prevFields.getFieldNames());
+      for (ColumnInfo colInfo : fieldColumns) {
+        colInfo.setComboValues(fieldNames);
+      }
+    });
   }
 
   private void setTableFieldCombo() {
-    Runnable fieldLoader =
-        () -> {
-          if (!wTable.isDisposed() && !wConnection.isDisposed() && 
!wSchema.isDisposed()) {
-            final String tableName = wTable.getText();
-            final String connectionName = wConnection.getText();
-            final String schemaName = wSchema.getText();
-            if (!Utils.isEmpty(tableName)) {
-              DatabaseMeta ci = pipelineMeta.findDatabase(connectionName, 
variables);
-              if (ci != null) {
-                Database db = new Database(loggingObject, variables, ci);
-                try {
-                  db.connect();
-
-                  String schemaTable =
-                      ci.getQuotedSchemaTableCombination(variables, 
schemaName, tableName);
-                  IRowMeta r = db.getTableFields(schemaTable);
-
-                  if (null != r) {
-                    String[] fieldNames = r.getFieldNames();
-                    if (null != fieldNames) {
-                      for (ColumnInfo colInfo : tableFieldColumns) {
-                        colInfo.setComboValues(fieldNames);
-                      }
-                    }
-                  }
-                } catch (Exception e) {
+    shell.getDisplay().asyncExec(() -> {
+      if (!wTable.isDisposed() && !wConnection.isDisposed() && 
!wSchema.isDisposed()) {
+        final String tableName = wTable.getText();
+        final String connectionName = wConnection.getText();
+        final String schemaName = wSchema.getText();
+        if (!Utils.isEmpty(tableName)) {
+          DatabaseMeta databaseMeta = 
pipelineMeta.findDatabase(connectionName, variables);
+          if (databaseMeta != null) {
+            try (Database database = new Database(loggingObject, variables, 
databaseMeta)) {
+              database.connect();
+
+              String schemaTable =
+                  databaseMeta.getQuotedSchemaTableCombination(variables, 
schemaName, tableName);
+              IRowMeta rowMeta = database.getTableFields(schemaTable);
+
+              if (null != rowMeta) {
+                String[] fieldNames = 
Const.sortStrings(rowMeta.getFieldNames());
+                if (null != fieldNames) {
                   for (ColumnInfo colInfo : tableFieldColumns) {
-                    colInfo.setComboValues(new String[] {});
-                  }
-                  // ignore any errors here. drop downs will not be
-                  // filled, but no problem for the user
-                } finally {
-                  try {
-                    if (db != null) {
-                      db.disconnect();
-                    }
-                  } catch (Exception ignored) {
-                    // ignore any errors here.
-                    db = null;
+                    colInfo.setComboValues(fieldNames);
                   }
                 }
               }
+            } catch (Exception e) {
+              for (ColumnInfo colInfo : tableFieldColumns) {
+                colInfo.setComboValues(new String[] {});
+              }
+              // ignore any errors here. drop downs will not be
+              // filled, but no problem for the user
             }
           }
-        };
-    shell.getDisplay().asyncExec(fieldLoader);
+        }
+      }
+    });
   }
 
   private void enableFields() {
@@ -768,16 +739,15 @@ public class DatabaseLookupDialog extends 
BaseTransformDialog implements ITransf
   }
 
   private void getlookup() {
-    DatabaseMeta ci = pipelineMeta.findDatabase(wConnection.getText(), 
variables);
-    if (ci != null) {
-      Database db = new Database(loggingObject, variables, ci);
-      try {
-        db.connect();
+    DatabaseMeta databaseMeta = 
pipelineMeta.findDatabase(wConnection.getText(), variables);
+    if (databaseMeta != null) {
+      try (Database database = new Database(loggingObject, variables, 
databaseMeta)) {
+        database.connect();
 
         if (!Utils.isEmpty(wTable.getText())) {
           String schemaTable =
-              ci.getQuotedSchemaTableCombination(variables, wSchema.getText(), 
wTable.getText());
-          IRowMeta r = db.getTableFields(schemaTable);
+              databaseMeta.getQuotedSchemaTableCombination(variables, 
wSchema.getText(), wTable.getText());
+          IRowMeta r = database.getTableFields(schemaTable);
 
           if (r != null && !r.isEmpty()) {
             logDebug(
@@ -817,11 +787,10 @@ public class DatabaseLookupDialog extends 
BaseTransformDialog implements ITransf
     }
   }
 
-  private void getSchemaNames() {
+  private void getSchemaName() {
     DatabaseMeta databaseMeta = 
pipelineMeta.findDatabase(wConnection.getText(), variables);
     if (databaseMeta != null) {
-      Database database = new Database(loggingObject, variables, databaseMeta);
-      try {
+      try (Database database = new Database(loggingObject, variables, 
databaseMeta)) {
         database.connect();
         String[] schemas = database.getSchemas();
 
@@ -853,8 +822,6 @@ public class DatabaseLookupDialog extends 
BaseTransformDialog implements ITransf
             BaseMessages.getString(PKG, "System.Dialog.Error.Title"),
             BaseMessages.getString(PKG, 
"DatabaseLookupDialog.ErrorGettingSchemas"),
             e);
-      } finally {
-        database.disconnect();
       }
     }
   }
diff --git 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_de_DE.properties
 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_de_DE.properties
index 0b555ead63..629be3a52d 100644
--- 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_de_DE.properties
+++ 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_de_DE.properties
@@ -43,7 +43,6 @@ DatabaseLookupMeta.Check.MissingConnectionError=Bitte 
w\u00E4hlen oder erstellen
 DatabaseLookupMeta.Check.NoInputReceivedFromOtherTransforms=Kein Input wird 
von anderen Schritten erhalten.\!
 DatabaseLookupMeta.ERROR0004.ErrorGettingTableFields=Ein Fehler ist 
aufgetreten:
 DatabaseLookupDialog.shell.Title=Datenbanksuche
-DatabaseLookupDialog.TransformName.Label=Schrittname 
 DatabaseLookupDialog.Lookuptable.Label=Zu durchsuchende Tabelle
 DatabaseLookupDialog.Browse.Button=&Durchsuchen...
 DatabaseLookupDialog.Cache.Label=Cache aktivieren?
diff --git 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_en_US.properties
 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_en_US.properties
index 782e860a06..33ecfc0d14 100644
--- 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_en_US.properties
+++ 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_en_US.properties
@@ -25,7 +25,6 @@ DatabaseLookupDialog.ColumnInfo.Newname=New name
 DatabaseLookupDialog.Lookuptable.Label=Lookup table
 DatabaseLookupMeta.Check.MissingFieldsNotFoundInInput=Missing fields, not 
found in input from previous transforms\:
 DatabaseLookupDialog.ErrorOccurred.DialogMessage=An error occurred\: 
-DatabaseLookupDialog.TransformName.Label=Transform name 
 DatabaseLookup.ERROR003.UnexpectedErrorDuringProcessing=Because of an error, 
this transform can''t continue\: 
 DatabaseLookupDialog.shell.Title=Database lookup
 DatabaseLookupDialog.ColumnInfo.Default=Default
diff --git 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_AR.properties
 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_AR.properties
index 7c1a7c39a6..4177562774 100644
--- 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_AR.properties
+++ 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_AR.properties
@@ -27,7 +27,6 @@ DatabaseLookupDialog.ColumnInfo.Newname=Nuevo nombre
 DatabaseLookupDialog.Lookuptable.Label=Tabla de b\u00FAsqueda
 DatabaseLookupMeta.Check.MissingFieldsNotFoundInInput=Campos no encontrados en 
la entrada de pasos anteriores\:
 DatabaseLookupDialog.ErrorOccurred.DialogMessage=Se ha producido un error\: 
-DatabaseLookupDialog.TransformName.Label=Nombre del paso 
 DatabaseLookup.ERROR003.UnexpectedErrorDuringProcessing=Este paso no puede 
continuar debido a un error\:
 DatabaseLookupDialog.shell.Title=B\u00FAsqueda de valor en base de datos
 DatabaseLookupDialog.ColumnInfo.Default=Por Defecto
diff --git 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_ES.properties
 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_ES.properties
index 823f46ff52..f89df817a5 100644
--- 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_ES.properties
+++ 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_ES.properties
@@ -53,7 +53,6 @@ DatabaseLookupMeta.ERROR0004.ErrorGettingTableFields=Se ha 
producido un error:
 DatabaseLookupMeta.Impact.Key=Clave
 DatabaseLookupMeta.Impact.ReturnValue=Valor devuelto
 DatabaseLookupDialog.shell.Title=Búsqueda de valor en base de datos
-DatabaseLookupDialog.TransformName.Label=Nombre paso 
 DatabaseLookupDialog.TargetSchema.Label=Esquema de búsqueda
 DatabaseLookupDialog.Lookuptable.Label=Tabla de búsqueda 
 DatabaseLookupDialog.Browse.Button=&Examinar...
diff --git 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_it_IT.properties
 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_it_IT.properties
index c76e902f10..1def5a0a3d 100644
--- 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_it_IT.properties
+++ 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_it_IT.properties
@@ -25,7 +25,6 @@ DatabaseLookupDialog.ColumnInfo.Newname=Nuovo nome
 DatabaseLookupDialog.Lookuptable.Label=Tabella di lookup
 DatabaseLookupMeta.Check.MissingFieldsNotFoundInInput=Campi mancanti, non 
trovati nell''input dai transform precedenti transforms\:
 DatabaseLookupDialog.ErrorOccurred.DialogMessage=Errore\: 
-DatabaseLookupDialog.TransformName.Label=Nome transform 
 DatabaseLookup.ERROR003.UnexpectedErrorDuringProcessing=A causa di un errore, 
questo transform non pu\u00F2 continuare\: 
 DatabaseLookupDialog.shell.Title=Lookup di valori dal database
 DatabaseLookupDialog.ColumnInfo.Default=Default 
diff --git 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ja_JP.properties
 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ja_JP.properties
index 1716e2b9d0..1f354d6771 100644
--- 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ja_JP.properties
+++ 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ja_JP.properties
@@ -27,7 +27,6 @@ 
DatabaseLookupDialog.ColumnInfo.Newname=\u65b0\u3057\u3044\u30d5\u30a3\u30fc\u30
 DatabaseLookupDialog.Lookuptable.Label=\u30c6\u30fc\u30d6\u30eb\u540d
 DatabaseLookupMeta.Check.MissingFieldsNotFoundInInput=Missing fields, not 
found in input from previous transforms\:
 
DatabaseLookupDialog.ErrorOccurred.DialogMessage=\u30a8\u30e9\u30fc\u304c\u8d77\u3053\u308a\u307e\u3057\u305f\u3002\:
 
-DatabaseLookupDialog.TransformName.Label=\u30b9\u30c6\u30c3\u30d7\u540d
 DatabaseLookup.ERROR003.UnexpectedErrorDuringProcessing=Because of an error, 
this transform can''t continue\: 
 
DatabaseLookupDialog.shell.Title=\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u53c2\u7167
 DatabaseLookupDialog.ColumnInfo.Default=\u30c7\u30d5\u30a9\u30eb\u30c8
diff --git 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ko_KR.properties
 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ko_KR.properties
index 94bbaf5d5b..22942e6beb 100644
--- 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ko_KR.properties
+++ 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ko_KR.properties
@@ -24,7 +24,6 @@ DatabaseLookupMeta.Impact.ReturnValue=Return value
 DatabaseLookupDialog.ColumnInfo.Newname=\uC0C8 \uC774\uB984
 DatabaseLookupDialog.Lookuptable.Label=Lookup \uD14C\uC774\uBE14
 DatabaseLookupDialog.ErrorOccurred.DialogMessage=\uC624\uB958\uAC00 
\uBC1C\uC0DD\uD558\uC600\uC2B5\uB2C8\uB2E4\:
-DatabaseLookupDialog.TransformName.Label=transform \uC774\uB984 
 DatabaseLookup.ERROR003.UnexpectedErrorDuringProcessing=Because of an error, 
this transform can''t continue\: 
 DatabaseLookupDialog.shell.Title=Database lookup
 DatabaseLookupDialog.ColumnInfo.Default=\uAE30\uBCF8\uAC12
diff --git 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_BR.properties
 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_BR.properties
index c251575ce8..6b2575d4c9 100644
--- 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_BR.properties
+++ 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_BR.properties
@@ -51,7 +51,6 @@ DatabaseLookupMeta.ERROR0004.ErrorGettingTableFields=Ocorreu 
um erro:
 DatabaseLookupMeta.Impact.Key=Chave
 DatabaseLookupMeta.Impact.ReturnValue=Valor Retornado
 DatabaseLookupDialog.shell.Title=Lookup de valor do banco de dados
-DatabaseLookupDialog.TransformName.Label=Nome do transform 
 DatabaseLookupDialog.Lookuptable.Label=Tabela Lookup
 DatabaseLookupDialog.Browse.Button=&Navega...
 DatabaseLookupDialog.Cache.Label=Habilita cache?
diff --git 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_PT.properties
 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_PT.properties
index 180d847d35..6838cb7836 100644
--- 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_PT.properties
+++ 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_PT.properties
@@ -51,7 +51,6 @@ DatabaseLookupMeta.ERROR0004.ErrorGettingTableFields=Ocorreu 
um erro:
 DatabaseLookupMeta.Impact.Key=Chave
 DatabaseLookupMeta.Impact.ReturnValue=Valor Retornado
 DatabaseLookupDialog.shell.Title=Lookup de valor do banco de dados
-DatabaseLookupDialog.TransformName.Label=Nome do transform 
 DatabaseLookupDialog.Lookuptable.Label=Tabela Lookup 
 DatabaseLookupDialog.Browse.Button=&Navega...
 DatabaseLookupDialog.Cache.Label=Habilita cache?
diff --git 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_zh_CN.properties
 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_zh_CN.properties
index 68e3d1a2da..ae3a416bf4 100644
--- 
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_zh_CN.properties
+++ 
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_zh_CN.properties
@@ -78,7 +78,6 @@ DatabaseLookupDialog.NoSchema.Error=There is no schema 
available.
 DatabaseLookupDialog.Orderby.Label=\u6392\u5E8F\:
 DatabaseLookupDialog.Return.Label=\u67E5\u8BE2\u8868\u8FD4\u56DE\u7684\u503C \:
 DatabaseLookupDialog.TargetSchema.Label=Schema \u540D\u79F0\:
-DatabaseLookupDialog.TransformName.Label=Transform \u540D\u79F0\:
 DatabaseLookupDialog.TrimTypeColumn.Column=\u6E05\u9664\u65B9\u5F0F
 DatabaseLookupDialog.shell.Title=\u6570\u636E\u5E93\u67E5\u8BE2
 DatabaseLookupMeta.Check.AllFieldsFoundInInput=All fields found in the input 
stream.
diff --git 
a/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdateDialog.java
 
b/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdateDialog.java
index 562e02e2dc..a80758c243 100644
--- 
a/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdateDialog.java
+++ 
b/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdateDialog.java
@@ -68,7 +68,6 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 public class InsertUpdateDialog extends BaseTransformDialog implements 
ITransformDialog {
   private static final Class<?> PKG = InsertUpdateMeta.class; // For Translator
@@ -89,20 +88,16 @@ public class InsertUpdateDialog extends BaseTransformDialog 
implements ITransfor
 
   private final InsertUpdateMeta input;
 
-  private final Map<String, Integer> inputFields;
-
-  private ColumnInfo[] ciKey;
-
-  private ColumnInfo[] ciReturn;
-
   /** List of ColumnInfo that should have the field names of the selected 
database table */
   private final List<ColumnInfo> tableFieldColumns = new ArrayList<>();
+  
+  /** List of ColumnInfo that should have the field names of the input fields 
*/
+  private final List<ColumnInfo> inputFieldColumns = new ArrayList<>();
 
   public InsertUpdateDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta 
pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (InsertUpdateMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -137,11 +132,12 @@ public class InsertUpdateDialog extends 
BaseTransformDialog implements ITransfor
     shell.setText(BaseMessages.getString(PKG, 
"InsertUpdateDialog.Shell.Title"));
 
     int middle = props.getMiddlePct();
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
 
     // TransformName line
     wlTransformName = new Label(shell, SWT.RIGHT);
-    wlTransformName.setText(BaseMessages.getString(PKG, 
"InsertUpdateDialog.TransformName.Label"));
+    wlTransformName.setText(BaseMessages.getString(PKG, 
"System.TransformName.Label"));
+    wlTransformName.setToolTipText(BaseMessages.getString(PKG, 
"System.TransformName.Tooltip"));
     PropsUi.setLook(wlTransformName);
     fdlTransformName = new FormData();
     fdlTransformName.left = new FormAttachment(0, 0);
@@ -268,7 +264,7 @@ public class InsertUpdateDialog extends BaseTransformDialog 
implements ITransfor
             ? input.getInsertUpdateLookupField().getLookupKeys().size()
             : 1);
 
-    ciKey = new ColumnInfo[nrKeyCols];
+    ColumnInfo[] ciKey = new ColumnInfo[nrKeyCols];
     ciKey[0] =
         new ColumnInfo(
             BaseMessages.getString(PKG, 
"InsertUpdateDialog.ColumnInfo.TableField"),
@@ -298,13 +294,18 @@ public class InsertUpdateDialog extends 
BaseTransformDialog implements ITransfor
             ColumnInfo.COLUMN_TYPE_CCOMBO,
             new String[] {""},
             false);
+
     ciKey[3] =
         new ColumnInfo(
             BaseMessages.getString(PKG, 
"InsertUpdateDialog.ColumnInfo.StreamField2"),
             ColumnInfo.COLUMN_TYPE_CCOMBO,
             new String[] {""},
             false);
-    tableFieldColumns.add(ciKey[0]);
+    
+    tableFieldColumns.add(ciKey[0]);    
+    inputFieldColumns.add(ciKey[2]);    
+    inputFieldColumns.add(ciKey[3]);
+
     wKey =
         new TableView(
             variables,
@@ -356,7 +357,7 @@ public class InsertUpdateDialog extends BaseTransformDialog 
implements ITransfor
             ? input.getInsertUpdateLookupField().getValueFields().size()
             : 1);
 
-    ciReturn = new ColumnInfo[upInsCols];
+    ColumnInfo[] ciReturn = new ColumnInfo[upInsCols];
     ciReturn[0] =
         new ColumnInfo(
             BaseMessages.getString(PKG, 
"InsertUpdateDialog.ColumnInfo.TableField"),
@@ -374,7 +375,10 @@ public class InsertUpdateDialog extends 
BaseTransformDialog implements ITransfor
             BaseMessages.getString(PKG, 
"InsertUpdateDialog.ColumnInfo.Update"),
             ColumnInfo.COLUMN_TYPE_CCOMBO,
             new String[] {"Y", "N"});
+    
     tableFieldColumns.add(ciReturn[0]);
+    inputFieldColumns.add(ciReturn[1]); 
+    
     wReturn =
         new TableView(
             variables,
@@ -408,50 +412,14 @@ public class InsertUpdateDialog extends 
BaseTransformDialog implements ITransfor
     fdReturn.bottom = new FormAttachment(wOk, -2 * margin);
     wReturn.setLayoutData(fdReturn);
 
-    //
-    // Search the fields in the background
-    //
-
-    final Runnable runnable =
-        () -> {
-          TransformMeta transformMeta = 
pipelineMeta.findTransform(transformName);
-          if (transformMeta != null) {
-            try {
-              IRowMeta row = pipelineMeta.getPrevTransformFields(variables, 
transformMeta);
-
-              // Remember these fields...
-              for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
-              }
-
-              setComboBoxes();
-            } catch (HopException e) {
-              logError(BaseMessages.getString(PKG, 
"System.Dialog.GetFieldsFailed.Message"));
-            }
-          }
-        };
-    new Thread(runnable).start();
-
     // Add listeners
     wGet.addListener(SWT.Selection, e -> get());
     wGetLU.addListener(SWT.Selection, e -> getUpdate());
-
-    wbSchema.addSelectionListener(
-        new SelectionAdapter() {
-          @Override
-          public void widgetSelected(SelectionEvent e) {
-            getSchemaNames();
-          }
-        });
-    wbTable.addSelectionListener(
-        new SelectionAdapter() {
-          @Override
-          public void widgetSelected(SelectionEvent e) {
-            getTableName();
-          }
-        });
+    wbSchema.addListener(SWT.Selection, e -> getSchemaName());
+    wbTable.addListener(SWT.Selection, e -> getTableName());
 
     getData();
+    setInputFieldCombo();
     setTableFieldCombo();
     input.setChanged(changed);
 
@@ -460,24 +428,24 @@ public class InsertUpdateDialog extends 
BaseTransformDialog implements ITransfor
     return transformName;
   }
 
-  protected void setComboBoxes() {
-    // Something was changed in the row.
-    //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-    Const.sortStrings(fieldNames);
-    // Key fields
-    ciKey[2].setComboValues(fieldNames);
-    ciKey[3].setComboValues(fieldNames);
-    // return fields
-    ciReturn[1].setComboValues(fieldNames);
+  /**
+   * Search the fields in the background
+   */
+  protected void setInputFieldCombo() {
+    shell.getDisplay().asyncExec(() -> {
+      TransformMeta transformMeta = pipelineMeta.findTransform(transformName);
+      if (transformMeta != null) {
+        try {
+          IRowMeta rowMeta = pipelineMeta.getPrevTransformFields(variables, 
transformMeta);          
+          String[] fieldNames = Const.sortStrings(rowMeta.getFieldNames());
+          for (ColumnInfo colInfo : inputFieldColumns) {
+            colInfo.setComboValues(fieldNames);
+          }
+        } catch (HopException e) {
+          logError(BaseMessages.getString(PKG, 
"System.Dialog.GetFieldsFailed.Message"));
+        }
+      }
+    });
   }
 
   /**
@@ -757,56 +725,43 @@ public class InsertUpdateDialog extends 
BaseTransformDialog implements ITransfor
   }
 
   private void setTableFieldCombo() {
-    Runnable fieldLoader =
-        () -> {
-          if (!wTable.isDisposed() && !wConnection.isDisposed() && 
!wSchema.isDisposed()) {
-            final String tableName = wTable.getText();
-            final String connectionName = wConnection.getText();
-            final String schemaName = wSchema.getText();
-
-            // clear
-            for (ColumnInfo colInfo : tableFieldColumns) {
-              colInfo.setComboValues(new String[] {});
-            }
-            if (!Utils.isEmpty(tableName)) {
-              DatabaseMeta databaseMeta = 
pipelineMeta.findDatabase(connectionName, variables);
-              if (databaseMeta != null) {
-                Database db = new Database(loggingObject, variables, 
databaseMeta);
-                try {
-                  db.connect();
-
-                  IRowMeta r =
-                      db.getTableFieldsMeta(
-                          variables.resolve(schemaName), 
variables.resolve(tableName));
-                  if (null != r) {
-                    String[] fieldNames = r.getFieldNames();
-                    if (null != fieldNames) {
-                      for (ColumnInfo colInfo : tableFieldColumns) {
-                        colInfo.setComboValues(fieldNames);
-                      }
-                    }
-                  }
-                } catch (Exception e) {
+    shell.getDisplay().asyncExec(() -> {
+      if (!wTable.isDisposed() && !wConnection.isDisposed() && 
!wSchema.isDisposed()) {
+        final String tableName = wTable.getText();
+        final String connectionName = wConnection.getText();
+        final String schemaName = wSchema.getText();
+
+        // clear
+        for (ColumnInfo colInfo : tableFieldColumns) {
+          colInfo.setComboValues(new String[] {});
+        }
+        if (!Utils.isEmpty(tableName)) {
+          DatabaseMeta databaseMeta = 
pipelineMeta.findDatabase(connectionName, variables);
+          if (databaseMeta != null) {
+            try (Database database = new Database(loggingObject, variables, 
databaseMeta)) {
+              database.connect();
+
+              IRowMeta rowMeta = 
database.getTableFieldsMeta(variables.resolve(schemaName),
+                  variables.resolve(tableName));
+              if (null != rowMeta) {
+                String[] fieldNames = 
Const.sortStrings(rowMeta.getFieldNames());
+                if (null != fieldNames) {
                   for (ColumnInfo colInfo : tableFieldColumns) {
-                    colInfo.setComboValues(new String[] {});
-                  }
-                  // ignore any errors here. drop downs will not be
-                  // filled, but no problem for the user
-                } finally {
-                  try {
-                    if (db != null) {
-                      db.disconnect();
-                    }
-                  } catch (Exception ignored) {
-                    // ignore any errors here.
-                    db = null;
+                    colInfo.setComboValues(fieldNames);
                   }
                 }
               }
+            } catch (Exception e) {
+              for (ColumnInfo colInfo : tableFieldColumns) {
+                colInfo.setComboValues(new String[] {});
+              }
+              // ignore any errors here. drop downs will not be
+              // filled, but no problem for the user
             }
           }
-        };
-    shell.getDisplay().asyncExec(fieldLoader);
+        }
+      }
+    });
   }
 
   private void ok() {
@@ -829,11 +784,10 @@ public class InsertUpdateDialog extends 
BaseTransformDialog implements ITransfor
     dispose();
   }
 
-  private void getSchemaNames() {
+  private void getSchemaName() {
     DatabaseMeta databaseMeta = 
pipelineMeta.findDatabase(wConnection.getText(), variables);
     if (databaseMeta != null) {
-      Database database = new Database(loggingObject, variables, databaseMeta);
-      try {
+      try (Database database = new Database(loggingObject, variables, 
databaseMeta)) {
         database.connect();
         String[] schemas = database.getSchemas();
 
@@ -865,8 +819,6 @@ public class InsertUpdateDialog extends BaseTransformDialog 
implements ITransfor
             BaseMessages.getString(PKG, "System.Dialog.Error.Title"),
             BaseMessages.getString(PKG, 
"InsertUpDateDialog.ErrorGettingSchemas"),
             e);
-      } finally {
-        database.disconnect();
       }
     }
   }
diff --git 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_en_US.properties
 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_en_US.properties
index a250a0984c..2e29958373 100644
--- 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_en_US.properties
+++ 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_en_US.properties
@@ -60,7 +60,6 @@ InsertUpdateMeta.CheckResult.NoInputError=No input received 
from other transform
 InsertUpdateDialog.GetFields.Button=\ &Get fields 
 InsertUpdateMeta.ReturnValue.NoTableDefinedOnConnection=No table is defined on 
this connection.
 InsertUpDateDialog.GetSchemas.Error=ERROR
-InsertUpdateDialog.TransformName.Label=Transform name 
 InsertUpdateMeta.CheckResult.CouldNotReadTableInfo=Couldn''t read the table 
info, please check the table-name & permissions.
 InsertUpdateMeta.CheckResult.TableNameOK=Table name is filled in.
 InsertUpdateDialog.Browse.Button=&Browse...
diff --git 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_AR.properties
 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_AR.properties
index 7a362ca2cd..934b6cbb1f 100644
--- 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_AR.properties
+++ 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_AR.properties
@@ -61,7 +61,6 @@ InsertUpdateMeta.CheckResult.NoInputError=No se est\u00E1 
recibiendo entrada de
 InsertUpdateDialog.GetFields.Button=\ &Obtener campos 
 InsertUpdateMeta.ReturnValue.NoTableDefinedOnConnection=No hay ninguna tabla 
definida en esta conexi\u00F3n.
 InsertUpDateDialog.GetSchemas.Error=ERROR
-InsertUpdateDialog.TransformName.Label=Nombre del paso 
 InsertUpdateMeta.CheckResult.CouldNotReadTableInfo=No se ha podido leer la 
informaci\u00F3n de la tabla, compruebe el nombre de la tabla y los permisos.
 InsertUpdateMeta.CheckResult.TableNameOK=Se ha introducido un nombre de tabla.
 InsertUpdateDialog.Browse.Button=&Examinar...
diff --git 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_ES.properties
 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_ES.properties
index 4dda313eb2..6ce1028a98 100644
--- 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_ES.properties
+++ 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_ES.properties
@@ -32,7 +32,6 @@ InsertUpdate.Log.ErrorInTransform=Error en paso, pidiendo a 
todos que se paren:
 InsertUpdate.Log.ErrorOccurredDuringTransformInitialize=Se ha producido un 
error inicializando, el proceso se detendrá: 
 InsertUpdate.Log.UnableToCommitConnection=No se ha podido terminar 
transacción(s):
 InsertUpdateDialog.Shell.Title=Insertar/actualizar
-InsertUpdateDialog.TransformName.Label=Nombre de paso 
 InsertUpdateDialog.TargetSchema.Label=Esquema destino
 InsertUpdateDialog.TargetTable.Label=Tabla destino 
 InsertUpdateDialog.Browse.Button=&Examinar...
diff --git 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_fr_FR.properties
 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_fr_FR.properties
index eaaa13f1c8..0f5f0e4ba3 100644
--- 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_fr_FR.properties
+++ 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_fr_FR.properties
@@ -62,7 +62,6 @@ InsertUpdateMeta.CheckResult.NoInputError=Aucun flux en 
provenance des autres tr
 InsertUpdateDialog.GetFields.Button=\ &R\u00E9cup\u00E9rer champs
 InsertUpdateMeta.ReturnValue.NoTableDefinedOnConnection=Aucun table n''a 
\u00E9t\u00E9 d\u00E9finie sur cette connexion.
 InsertUpDateDialog.GetSchemas.Error=ERREUR
-InsertUpdateDialog.TransformName.Label=Nom de la transformation 
 InsertUpdateMeta.CheckResult.CouldNotReadTableInfo=Impossible de lire la table 
\! Veuillez svp v\u00E9rifier le nom de la table et les droits d''acc\u00E8s.
 InsertUpdateMeta.CheckResult.TableNameOK=Le nom de la table a \u00E9t\u00E9 
renseign\u00E9.
 InsertUpdateDialog.Browse.Button=&Parcourir...
diff --git 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ja_JP.properties
 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ja_JP.properties
index ba352db4cc..44894adef0 100644
--- 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ja_JP.properties
+++ 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ja_JP.properties
@@ -62,7 +62,6 @@ InsertUpdateMeta.CheckResult.NoInputError=No input received 
from other transform
 
InsertUpdateDialog.GetFields.Button=\u3000\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u53d6\u5f97(&G)
 InsertUpdateMeta.ReturnValue.NoTableDefinedOnConnection=No table is defined on 
this connection.
 InsertUpDateDialog.GetSchemas.Error=\u30a8\u30e9\u30fc
-InsertUpdateDialog.TransformName.Label=\u30b9\u30c6\u30c3\u30d7\u540d
 InsertUpdateMeta.CheckResult.CouldNotReadTableInfo=Couldn''t read the table 
info, please check the table-name & permissions.
 InsertUpdateMeta.CheckResult.TableNameOK=Table name is filled in.
 InsertUpdateDialog.Browse.Button=\u53c2\u7167(&B)....
diff --git 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ko_KR.properties
 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ko_KR.properties
index 04b408d646..f770ddaab3 100644
--- 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ko_KR.properties
+++ 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ko_KR.properties
@@ -65,7 +65,6 @@ 
InsertUpdateMeta.CheckResult.DatabaseErrorOccurred=\uB370\uC774\uD130\uBCA0\uC77
 InsertUpdateDialog.TargetTable.Label=\uB300\uC0C1 \uD14C\uC774\uBE14
 InsertUpdateDialog.SQLError.DialogTitle=\uC624\uB958
 InsertUpdateDialog.InvalidConnection.DialogTitle=\uC624\uB958
-InsertUpdateDialog.TransformName.Label=transform \uC774\uB984 
 InsertUpdateDialog.NoSQLNeeds.DialogTitle=\uD655\uC778
 InsertUpdateDialog.CouldNotBuildSQL.DialogMessage=\uC624\uB958\uB85C 
\uC778\uD574 SQL\uC744 \uC0DD\uC131\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
 InsertUpDateDialog.AvailableSchemas.Title=\uC0AC\uC6A9 \uAC00\uB2A5\uD55C 
\uC2A4\uD0A4\uB9C8
diff --git 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_zh_CN.properties
 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_zh_CN.properties
index 2bc0d3ea0a..11b98eb3fd 100644
--- 
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_zh_CN.properties
+++ 
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_zh_CN.properties
@@ -79,7 +79,6 @@ InsertUpdateDialog.Shell.Title=\u63D2\u5165/\u66F4\u65B0
 InsertUpdateDialog.TargetSchema.Label=\u76EE\u6807\u6A21\u5F0F\:
 InsertUpdateDialog.TargetTable.Label=\u76EE\u6807\u8868\:
 InsertUpdateDialog.TransformMeta.Title=CombinationLookup
-InsertUpdateDialog.TransformName.Label=Transform \u540D\u79F0\:
 
InsertUpdateDialog.UpdateBypassed.Label=\u4E0D\u6267\u884C\u4EFB\u4F55\u66F4\u65B0\:
 
 InsertUpdateDialog.UpdateFields.Label=\u66F4\u65B0\u5B57\u6BB5\: 
 InsertUpdateMeta.CheckResult.AllFieldsFoundInInput=All fields found in the 
input stream.


Reply via email to