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 d4343a7329 issue #7338 : Pipeline fails to open when an error-handling 
hop references a non-existent transform (misleading TransformErrorMeta error) 
(#7360)
d4343a7329 is described below

commit d4343a7329c660fcdbce20b987e0f6507b8fbf30
Author: Matt Casters <[email protected]>
AuthorDate: Mon Jun 29 15:05:57 2026 +0200

    issue #7338 : Pipeline fails to open when an error-handling hop references 
a non-existent transform (misleading TransformErrorMeta error) (#7360)
---
 .../metadata/serializer/xml/XmlMetadataUtil.java   |  3 ---
 .../org/apache/hop/pipeline/PipelineMetaTest.java  | 27 ++++++++++++++++++++++
 2 files changed, 27 insertions(+), 3 deletions(-)

diff --git 
a/core/src/main/java/org/apache/hop/metadata/serializer/xml/XmlMetadataUtil.java
 
b/core/src/main/java/org/apache/hop/metadata/serializer/xml/XmlMetadataUtil.java
index bb5fe1bf98..a2470a7d59 100644
--- 
a/core/src/main/java/org/apache/hop/metadata/serializer/xml/XmlMetadataUtil.java
+++ 
b/core/src/main/java/org/apache/hop/metadata/serializer/xml/XmlMetadataUtil.java
@@ -863,9 +863,6 @@ public class XmlMetadataUtil {
         break;
       }
     }
-    if (value == null) {
-      throw new HopXmlException("Unable to find object with name " + name + " 
in list " + listName);
-    }
     return value;
   }
 
diff --git a/engine/src/test/java/org/apache/hop/pipeline/PipelineMetaTest.java 
b/engine/src/test/java/org/apache/hop/pipeline/PipelineMetaTest.java
index 549469f932..85a68b264a 100644
--- a/engine/src/test/java/org/apache/hop/pipeline/PipelineMetaTest.java
+++ b/engine/src/test/java/org/apache/hop/pipeline/PipelineMetaTest.java
@@ -795,4 +795,31 @@ class PipelineMetaTest {
     ModPartitioner copyModPart = (ModPartitioner) 
copyPartMeta.getPartitioner();
     assertEquals("field-name", copyModPart.getFieldName());
   }
+
+  @Test
+  void testIssue7338() throws Exception {
+    String xml =
+        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+            + "<pipeline>\n"
+            + "  <transform>\n"
+            + "    <type>RowGenerator</type>\n"
+            + "    <name>100</name>\n"
+            + "  </transform>\n"
+            + "  <transform_error_handling>\n"
+            + "    <error>\n"
+            + "      <source_transform>100</source_transform>\n"
+            + "      
<target_transform>NonExistentTransform</target_transform>\n"
+            + "      <is_enabled>Y</is_enabled>\n"
+            + "    </error>\n"
+            + "  </transform_error_handling>\n"
+            + "</pipeline>";
+    Node node = XmlHandler.loadXmlString(xml, PipelineMeta.XML_TAG);
+    PipelineMeta copy =
+        XmlMetadataUtil.deSerializeFromXml(node, PipelineMeta.class, 
metadataProvider);
+    assertNotNull(copy);
+    assertEquals(1, copy.getTransformErrorMetas().size());
+    assertNotNull(copy.getTransformErrorMetas().get(0).getSourceTransform());
+    assertEquals("100", 
copy.getTransformErrorMetas().get(0).getSourceTransform().getName());
+    assertNull(copy.getTransformErrorMetas().get(0).getTargetTransform());
+  }
 }

Reply via email to