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 928196b56b convert binary data when copying field, fixes #2140 (#5818)
928196b56b is described below

commit 928196b56b32794833635a9edb231eba672bdec2
Author: Alex Mueller <[email protected]>
AuthorDate: Wed Oct 15 09:12:45 2025 +0200

    convert binary data when copying field, fixes #2140 (#5818)
---
 .../pipeline/transforms/calculator/calculations/CopyField.java    | 8 +++++++-
 .../hop/pipeline/transforms/calculator/CalculatorMetaTest.java    | 3 ++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git 
a/plugins/transforms/calculator/src/main/java/org/apache/hop/pipeline/transforms/calculator/calculations/CopyField.java
 
b/plugins/transforms/calculator/src/main/java/org/apache/hop/pipeline/transforms/calculator/calculations/CopyField.java
index c748266474..ef9590e5cc 100644
--- 
a/plugins/transforms/calculator/src/main/java/org/apache/hop/pipeline/transforms/calculator/calculations/CopyField.java
+++ 
b/plugins/transforms/calculator/src/main/java/org/apache/hop/pipeline/transforms/calculator/calculations/CopyField.java
@@ -17,6 +17,7 @@
 
 package org.apache.hop.pipeline.transforms.calculator.calculations;
 
+import org.apache.hop.core.exception.HopValueException;
 import org.apache.hop.core.row.IValueMeta;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.transforms.calculator.CalculationInput;
@@ -43,7 +44,12 @@ public class CopyField implements ICalculation {
   }
 
   @Override
-  public CalculationOutput calculate(CalculationInput in) {
+  public CalculationOutput calculate(CalculationInput in) throws 
HopValueException {
+    if (in.dataA instanceof byte[] && in.metaA != null) {
+      Object convertedData = in.metaA.convertBinaryStringToNativeType((byte[]) 
in.dataA);
+      return new CalculationOutput(in.metaA.getType(), convertedData);
+    }
+
     return new CalculationOutput(ICalculation.getResultType(in.metaA), 
in.dataA);
   }
 }
diff --git 
a/plugins/transforms/calculator/src/test/java/org/apache/hop/pipeline/transforms/calculator/CalculatorMetaTest.java
 
b/plugins/transforms/calculator/src/test/java/org/apache/hop/pipeline/transforms/calculator/CalculatorMetaTest.java
index d6192ed05d..a73176e0c3 100644
--- 
a/plugins/transforms/calculator/src/test/java/org/apache/hop/pipeline/transforms/calculator/CalculatorMetaTest.java
+++ 
b/plugins/transforms/calculator/src/test/java/org/apache/hop/pipeline/transforms/calculator/CalculatorMetaTest.java
@@ -18,6 +18,7 @@ package org.apache.hop.pipeline.transforms.calculator;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.util.Random;
 import java.util.UUID;
@@ -53,7 +54,7 @@ class CalculatorMetaTest {
     for (int i = 0; i < meta.getFunctions().size(); i++) {
       CalculatorMetaFunction function = meta.getFunctions().get(i);
       CalculatorMetaFunction function2 = meta2.getFunctions().get(i);
-      assertEquals(function, function2);
+      assertTrue(function.equals(function2));
     }
   }
 

Reply via email to