eyazan opened a new issue, #7338:
URL: https://github.com/apache/hop/issues/7338

   ### Apache Hop version?
   
   2.18.1
   
   ### Java version?
   
   21.0.11
   
   ### Operating system
   
   Docker
   
   ### What happened?
   
   When a pipeline .hpl file contains a <transform_error_handling> entry whose 
source_transform or target_transform refers to a transform that no longer 
exists in the file, the pipeline becomes completely un-openable in Hop. The 
error is misleading: it surfaces as a TransformErrorMeta instantiation / "empty 
public constructor" failure rather than clearly stating that an error-handling 
hop points to a missing transform.
   
   We have hit this on multiple different pipelines in the same project, each 
pointing at a different missing transform (e.g. Table input, Delay row), which 
suggests it is a general deserialization-robustness issue rather than something 
specific to one file.
   
   Stack trace:
   HopXmlException:
   Error reading object from XML file
   Error reading object from XML file
   Error calling setter method on class org.apache.hop.pipeline.PipelineMeta
   Unable to instantiate a new instance of class 
org.apache.hop.pipeline.transform.TransformErrorMeta: make sure there is an 
empty public constructor available to allow XML de-serialization
   Unable to find object with name Table input in list transforms
   
   Root cause: HopXmlException:
   Unable to find object with name Table input in list transforms
   
   Steps to reproduce:
   
   
   Create a pipeline with two transforms, A and B, and define error handling 
between them.
   Delete or rename one of the transforms (or manually remove its <transform> 
block from the XML) while leaving the <transform_error_handling> block intact.
   Reopen the pipeline.
   
   
   Expected behavior:
   
   The pipeline should open, ignoring or warning about the orphaned 
error-handling hop, rather than failing deserialization entirely. At minimum 
the error message should clearly state that an error-handling hop references a 
missing transform and name the source transform, so the user can locate and fix 
it.
   
   Actual behavior:
   
   The entire pipeline fails to load. The top-level error blames 
TransformErrorMeta / "empty public constructor", which is misleading; the real 
cause is the missing transform referenced by the <transform_error_handling> 
definition. There is no in-GUI way to recover, so the user must hand-edit the 
XML to remove the orphaned <error> block.
   
   Workaround:
   
   Open the .hpl in a text editor and delete the <transform_error_handling> 
block (or the specific <error> entry) whose source_transform/target_transform 
names a transform that no longer exists in the file.
   
   ### Issue Priority
   
   Priority: 3
   
   ### Issue Component
   
   Component: Hop Web


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to