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("");