{"record":{"id":"39a9827ad64d753d","repo":"pentaho/pentaho-kettle","slug":"jobentryeval-unabletoloadfromxml","errorCode":null,"errorMessage":"JobEntryEval.UnableToLoadFromXml","messagePattern":"JobEntryEval\\.UnableToLoadFromXml","errorType":"exception","errorClass":"KettleXMLException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/job/entries/eval/JobEntryEval.java","lineNumber":85,"sourceCode":"    return je;\n  }\n\n  public String getXML() {\n    StringBuilder retval = new StringBuilder( 50 );\n\n    retval.append( super.getXML() );\n    retval.append( \"      \" ).append( XMLHandler.addTagValue( \"script\", script ) );\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      script = XMLHandler.getTagValue( entrynode, \"script\" );\n    } catch ( Exception e ) {\n      throw new KettleXMLException( BaseMessages.getString( PKG, \"JobEntryEval.UnableToLoadFromXml\" ), e );\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      script = rep.getJobEntryAttributeString( id_jobentry, \"script\" );\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException( BaseMessages.getString( PKG, \"JobEntryEval.UnableToLoadFromRepo\", String\n        .valueOf( id_jobentry ) ), dbe );\n    }\n  }\n\n  // Save the attributes of this job entry\n  //\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {\n    try {\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"script\", script );","sourceCodeStart":67,"sourceCodeEnd":103,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/job/entries/eval/JobEntryEval.java#L67-L103","documentation":"JobEntryEval.loadXML() reads the <script> tag from a job entry's XML node; any Exception during XML parsing (including from super.loadXML) is rethrown as a KettleXMLException with the localized message 'JobEntryEval.UnableToLoadFromXml'. It means the Eval (JavaScript) job entry could not be deserialized from a .kjb job file.","triggerScenarios":"Loading a job (JobMeta constructed from an XML file or stream) that contains a JobEntryEval node whose XML is malformed, whose 'script' tag cannot be read, or whose parent JobEntryBase.loadXML fails.","commonSituations":"Corrupted or hand-edited .kjb file; XML produced by a newer Pentaho version with an incompatible layout; truncation of the file during transfer; missing tags after a merge conflict.","solutions":["Inspect the chained cause to find the exact XML parse failure and tag involved.","Open the .kjb in Spoon; if it fails, repair or recreate the Eval job entry node so the <script> element is well-formed.","Check the file was not truncated or corrupted in transit and re-export the job.","Confirm the Pentaho/Kettle version that produced the XML matches the runtime version."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Validate job XML before loading\nDocument doc = XMLHandler.loadXMLFile(jobFile);\nif (XMLHandler.getSubNode(doc, \"job\") == null) {\n  throw new IllegalArgumentException(\"Not a valid Kettle job XML\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  JobMeta meta = new JobMeta(jobFile, rep, metaStore);\n} catch (KettleXMLException e) {\n  logError(\"Failed to load Eval entry from XML: \" + e.getMessage(), e);\n  // fall back to re-exported job or backup copy\n}","preventionTips":["Never hand-edit .kjb files; edit jobs through Spoon.","Keep producing and consuming Pentaho versions aligned.","Keep backups of job files before edits or upgrades.","Verify file transfers preserve the XML intact (checksums)."],"tags":["xml","deserialization","job-entry","kettle"],"backgroundTag":"json-unmarshal-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"}