{"record":{"id":"12c1944e3ff5a2c4","repo":"pentaho/pentaho-kettle","slug":"unable-to-load-job-entry-of-type-xsdvalidator-from-the","errorCode":null,"errorMessage":"Unable to load job entry of type 'xsdvalidator' from the repository for id_jobentry=<id_jobentry>","messagePattern":"Unable to load job entry of type 'xsdvalidator' from the repository for id_jobentry=<id_jobentry>","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/xml/core/src/main/java/org/pentaho/di/job/entries/xsdvalidator/JobEntryXSDValidator.java","lineNumber":132,"sourceCode":"      super.loadXML( entrynode, databases, slaveServers );\n      xmlfilename = XMLHandler.getTagValue( entrynode, \"xmlfilename\" );\n      xsdfilename = XMLHandler.getTagValue( entrynode, \"xsdfilename\" );\n      allowExternalEntities = YES.equalsIgnoreCase( XMLHandler.getTagValue( entrynode, \"allowExternalEntities\" ) );\n\n    } catch ( KettleXMLException xe ) {\n      throw new KettleXMLException( \"Unable to load job entry of type 'xsdvalidator' 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      xmlfilename = rep.getJobEntryAttributeString( id_jobentry, \"xmlfilename\" );\n      xsdfilename = rep.getJobEntryAttributeString( id_jobentry, \"xsdfilename\" );\n      allowExternalEntities =\n        Boolean.parseBoolean( rep.getJobEntryAttributeString( id_jobentry, \"allowExternalEntities\" ) );\n    } catch ( KettleException dbe ) {\n      throw new KettleException( \"Unable to load job entry of type 'xsdvalidator' from the repository for id_jobentry=\"\n          + 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(), \"xmlfilename\", xmlfilename );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"xsdfilename\", xsdfilename );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"allowExternalEntities\", allowExternalEntities );\n\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException( \"Unable to save job entry of type 'xsdvalidator' to the repository for id_job=\"\n          + id_job, dbe );\n    }\n  }\n\n  public String getRealxmlfilename() {\n    return environmentSubstitute( getxmlFilename() );","sourceCodeStart":114,"sourceCodeEnd":150,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/xml/core/src/main/java/org/pentaho/di/job/entries/xsdvalidator/JobEntryXSDValidator.java#L114-L150","documentation":"JobEntryXSDValidator.loadRep rethrows KettleException when reading the entry's attributes (xmlfilename, xsdfilename, allowExternalEntities) from the Pentaho repository fails for the given id_jobentry. The database-level KettleException cause is preserved.","triggerScenarios":"Loading the job entry from a repository where rep.getJobEntryAttributeString throws a KettleException (connection failure, missing rows, schema mismatch).","commonSituations":"Repository database temporarily unreachable; repository schema version mismatch; entry rows deleted directly in the database; corrupted repository record.","solutions":["Check the wrapped KettleException cause for the database error","Verify repository database connectivity","Confirm the r_jobentry_attribute rows exist for this id_jobentry","Upgrade/repair the repository schema to match your PDI version"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  entry.loadRep( rep, metaStore, id_jobentry, databases, slaveServers );\n} catch ( KettleException e ) {\n  logError( \"Repository load failed for id_jobentry=\" + id_jobentry + \": \" + e.getCause(), e );\n  throw e;\n}","preventionTips":["Check repository DB health before loading jobs","Never delete r_jobentry_attribute rows directly in SQL","Keep repository schema in sync with the PDI version","Use repository backup/restore tooling"],"tags":["pdi","repository","database","job-entry"],"backgroundTag":"database-query-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"}