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 8acb3aa516 Fix the targetType condition check in the Value Mapper 
component (#7498)
8acb3aa516 is described below

commit 8acb3aa51658eee59040160c89a7116d01d14120
Author: Lance <[email protected]>
AuthorDate: Mon Jul 13 21:58:26 2026 +0800

    Fix the targetType condition check in the Value Mapper component (#7498)
    
    Signed-off-by: lance <[email protected]>
---
 .../transforms/valuemapper/ValueMapperMeta.java    |  2 +-
 .../valuemapper/ValueMapperMetaTest.java           | 28 +++++++++++++++++++---
 2 files changed, 26 insertions(+), 4 deletions(-)

diff --git 
a/plugins/transforms/valuemapper/src/main/java/org/apache/hop/pipeline/transforms/valuemapper/ValueMapperMeta.java
 
b/plugins/transforms/valuemapper/src/main/java/org/apache/hop/pipeline/transforms/valuemapper/ValueMapperMeta.java
index 2ac0420377..2cfa767551 100644
--- 
a/plugins/transforms/valuemapper/src/main/java/org/apache/hop/pipeline/transforms/valuemapper/ValueMapperMeta.java
+++ 
b/plugins/transforms/valuemapper/src/main/java/org/apache/hop/pipeline/transforms/valuemapper/ValueMapperMeta.java
@@ -136,7 +136,7 @@ public class ValueMapperMeta extends 
BaseTransformMeta<ValueMapper, ValueMapperD
     this.targetField = meta.targetField;
     this.nonMatchDefault = meta.nonMatchDefault;
     this.keepOriginalValueOnNonMatch = meta.getKeepOriginalValueOnNonMatch();
-    if (meta.targetType != null && meta.targetType.isEmpty()) {
+    if (meta.targetType != null && !meta.targetType.isEmpty()) {
       this.targetType = meta.targetType;
     } else {
       this.targetType = "String";
diff --git 
a/plugins/transforms/valuemapper/src/test/java/org/apache/hop/pipeline/transforms/valuemapper/ValueMapperMetaTest.java
 
b/plugins/transforms/valuemapper/src/test/java/org/apache/hop/pipeline/transforms/valuemapper/ValueMapperMetaTest.java
index e1a45eb310..98947974d8 100644
--- 
a/plugins/transforms/valuemapper/src/test/java/org/apache/hop/pipeline/transforms/valuemapper/ValueMapperMetaTest.java
+++ 
b/plugins/transforms/valuemapper/src/test/java/org/apache/hop/pipeline/transforms/valuemapper/ValueMapperMetaTest.java
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.mock;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Stream;
 import org.apache.hop.core.HopEnvironment;
 import org.apache.hop.core.ICheckResult;
 import org.apache.hop.core.plugins.PluginRegistry;
@@ -38,6 +39,9 @@ import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.TransformSerializationTestUtil;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
 
 class ValueMapperMetaTest {
 
@@ -179,6 +183,24 @@ class ValueMapperMetaTest {
     assertEquals("y", clone.getValues().get(0).getTarget());
   }
 
+  @MethodSource("cloneTargetTypeCases")
+  @ParameterizedTest(name = "sourceType={0} -> expectedType={1}")
+  void cloneCopiesTargetType(String sourceType, String expectedType) {
+    ValueMapperMeta meta = new ValueMapperMeta();
+    meta.setTargetType(sourceType);
+
+    ValueMapperMeta clone = (ValueMapperMeta) meta.clone();
+
+    assertEquals(expectedType, clone.getTargetType());
+  }
+
+  static Stream<Arguments> cloneTargetTypeCases() {
+    return Stream.of(
+        Arguments.of("Integer", "Integer"),
+        Arguments.of(null, "String"),
+        Arguments.of("", "String"));
+  }
+
   @Test
   void checkAddsWarningWhenNoPreviousFields() {
     ValueMapperMeta meta = new ValueMapperMeta();
@@ -216,7 +238,7 @@ class ValueMapperMetaTest {
   }
 
   @Test
-  void getFieldsAddsIntegerTypedTargetColumnWhenSpecified() throws Exception {
+  void getFieldsAddsIntegerTypedTargetColumnWhenSpecified() {
     ValueMapperMeta meta = new ValueMapperMeta();
     meta.setFieldToUse("id");
     meta.setTargetField("amt");
@@ -230,7 +252,7 @@ class ValueMapperMetaTest {
   }
 
   @Test
-  void getFieldsUnknownTargetTypeFallsBackToStringForNewColumn() throws 
Exception {
+  void getFieldsUnknownTargetTypeFallsBackToStringForNewColumn() {
     ValueMapperMeta meta = new ValueMapperMeta();
     meta.setFieldToUse("id");
     meta.setTargetField("out");
@@ -244,7 +266,7 @@ class ValueMapperMetaTest {
   }
 
   @Test
-  void inPlaceWithExplicitTargetTypeDoesNotCoerceColumnInGetFields() throws 
Exception {
+  void inPlaceWithExplicitTargetTypeDoesNotCoerceColumnInGetFields() {
     ValueMapperMeta meta = new ValueMapperMeta();
     meta.setFieldToUse("code");
     meta.setTargetField("");

Reply via email to