{"record":{"id":"5b78b96d88f45499","repo":"pentaho/pentaho-kettle","slug":"unable-to-load-job-entry-from-xml-node","errorCode":null,"errorMessage":"Unable to load job entry from XML node","messagePattern":"Unable to load job entry from XML node","errorType":"exception","errorClass":"KettleXMLException","httpStatus":null,"severity":"error","filePath":"plugins/hl7/core/src/main/java/org/pentaho/di/job/entries/hl7mllpack/HL7MLLPAcknowledge.java","lineNumber":101,"sourceCode":"\n    retval.append( super.getXML() );\n    retval.append( \"      \" ).append( XMLHandler.addTagValue( \"server\", server ) );\n    retval.append( \"      \" ).append( XMLHandler.addTagValue( \"port\", port ) );\n    retval.append( \"      \" ).append( XMLHandler.addTagValue( \"variable\", variableName ) );\n\n    return retval.toString();\n  }\n\n  public void loadXML( Node entrynode, List<DatabaseMeta> databases, List<SlaveServer> slaveServers, Repository rep,\n      IMetaStore metaStore ) throws KettleXMLException {\n    try {\n      super.loadXML( entrynode, databases, slaveServers );\n\n      server = XMLHandler.getTagValue( entrynode, \"server\" );\n      port = XMLHandler.getTagValue( entrynode, \"port\" );\n      variableName = XMLHandler.getTagValue( entrynode, \"variable\" );\n    } catch ( KettleXMLException xe ) {\n      throw new KettleXMLException( \"Unable to load job entry from XML node\", xe );\n    }\n  }\n\n  @Override\n  public void loadRep( Repository rep, IMetaStore metaStore, ObjectId idJobentry, List<DatabaseMeta> databases,\n      List<SlaveServer> slaveServers ) throws KettleException {\n    try {\n      server = rep.getJobEntryAttributeString( idJobentry, \"server\" );\n      port = rep.getJobEntryAttributeString( idJobentry, \"port\" );\n      variableName = rep.getJobEntryAttributeString( idJobentry, \"variable\" );\n    } catch ( KettleException dbe ) {\n      throw new KettleException( \"Unable to load job entry from the repository for id_jobentry=\" + idJobentry, dbe );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {\n    try {\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"server\", server );","sourceCodeStart":83,"sourceCodeEnd":119,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/hl7/core/src/main/java/org/pentaho/di/job/entries/hl7mllpack/HL7MLLPAcknowledge.java#L83-L119","documentation":"HL7MLLPAcknowledge.loadXML() deserializes the job entry from its XML representation, reading server/port/variable tags via XMLHandler. Any KettleXMLException raised while parsing (malformed XML, missing or invalid node) is caught and rethrown as a new KettleXMLException with the message 'Unable to load job entry from XML node' and the original as cause.","triggerScenarios":"Loading a .kjb containing this HL7 MLLP Acknowledge entry whose <entry> XML block is malformed or unreadable — XMLHandler.getTagValue throws KettleXMLException during loadXML.","commonSituations":"Hand-edited or truncated job files; version incompatibility where the XML schema changed; corrupted file transfer; XML with invalid characters or wrong nesting produced by external tooling.","solutions":["Inspect the chained cause to find the exact XML parse error and line","Validate/repair the <entry type=\"HL7MLLPAck\"> XML block in the .kjb file","Recreate the job entry in Spoon and re-save the job","Check the file was not truncated/corrupted in transfer and re-export from source"],"exampleFix":"// before (malformed entry XML)\n<server>host<port>5050</port>\n// after\n<server>host</server>\n<port>5050</port>","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { jobMeta.loadXML(file, null, false); } catch (KettleXMLException e) { log.error(\"Job XML invalid: \" + e.getMessage(), e.getCause()); }","preventionTips":["Do not hand-edit .kjb XML; use Spoon","Validate XML after external post-processing of job files","Keep PDI versions consistent between editors and runners"],"tags":["pdi","hl7","xml","job-entry","deserialization"],"backgroundTag":"xml-parse-error","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}