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());
+ }
}