{"record":{"id":"42eac4297feef612","repo":"pentaho/pentaho-kettle","slug":"error-0001-cannot-load-job-entry-from-xml-node","errorCode":"ERROR_0001_Cannot_Load_Job_Entry_From_Xml_Node","errorMessage":"JobEntryFileExists.ERROR_0001_Cannot_Load_Job_Entry_From_Xml_Node","messagePattern":"JobEntryFileExists\\.ERROR_0001_Cannot_Load_Job_Entry_From_Xml_Node","errorType":"exception","errorClass":"KettleXMLException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/job/entries/fileexists/JobEntryFileExists.java","lineNumber":94,"sourceCode":"  public String getXML() {\n    StringBuilder retval = new StringBuilder( 20 );\n\n    retval.append( super.getXML() );\n    retval.append( \"      \" ).append( XMLHandler.addTagValue( \"filename\", filename ) );\n    if ( parentJobMeta != null ) {\n      parentJobMeta.getNamedClusterEmbedManager().registerUrl( filename );\n    }\n\n    return retval.toString();\n  }\n\n  public void loadXML( Node entrynode, List<DatabaseMeta> databases, List<SlaveServer> slaveServers,\n    Repository rep, IMetaStore metaStore ) throws KettleXMLException {\n    try {\n      super.loadXML( entrynode, databases, slaveServers );\n      filename = XMLHandler.getTagValue( entrynode, \"filename\" );\n    } catch ( KettleXMLException xe ) {\n      throw new KettleXMLException( BaseMessages.getString(\n        PKG, \"JobEntryFileExists.ERROR_0001_Cannot_Load_Job_Entry_From_Xml_Node\" ), xe );\n    }\n  }\n\n  public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,\n    List<SlaveServer> slaveServers ) throws KettleException {\n    try {\n      filename = rep.getJobEntryAttributeString( id_jobentry, \"filename\" );\n    } catch ( KettleException dbe ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"JobEntryFileExists.ERROR_0002_Cannot_Load_Job_From_Repository\", id_jobentry ), 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(), \"filename\", filename );\n    } catch ( KettleDatabaseException dbe ) {","sourceCodeStart":76,"sourceCodeEnd":112,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/job/entries/fileexists/JobEntryFileExists.java#L76-L112","documentation":"Thrown by JobEntryFileExists.loadXML when the 'file exists' job entry cannot be deserialized from its XML node. It wraps the KettleXMLException in a localized message. Failure means the entry's XML (base attributes or the <filename> tag) could not be read correctly.","triggerScenarios":"Loading a .kjb whose <entry type='fileexists'> node is malformed, missing the <filename> child, or whose base loadXML (super) fails on corrupted name/description attributes.","commonSituations":"Truncated .kjb from an interrupted transfer; manually edited XML with wrong tag names; XML from an incompatible Kettle version.","solutions":["Re-open/re-create the entry in Spoon to regenerate valid XML","Ensure the entry node contains a <filename> child tag","Inspect the wrapped KettleXMLException cause for the parse offset","Regenerate or restore the .kjb from version control"],"exampleFix":"// before\n<entry name='Check file'/>\n// after\n<entry name='Check file'><filename>/data/input.csv</filename></entry>","handlingStrategy":"try-catch","validationCode":"// Java: ensure filename tag exists before loading\nif (XMLHandler.getSubNode(entrynode, \"filename\") == null) {\n    throw new IllegalArgumentException(\"fileexists entry missing <filename>\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    jobEntry.loadXML(entrynode, databases, slaveServers, rep, metaStore);\n} catch (KettleXMLException e) {\n    logError(\"Corrupt fileexists entry XML: \" + e.getMessage(), e);\n    // skip entry or substitute defaults\n}","preventionTips":["Edit job entries only through Spoon","Validate .kjb XML well-formedness after external generation","Pin Kettle versions across environments","Restore from VCS instead of patching broken XML"],"tags":["xml","deserialization","job-entry"],"backgroundTag":"xml-parse-failed","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"}