{"record":{"id":"9ca82795dd425125","repo":"pentaho/pentaho-kettle","slug":"unable-to-load-job-entry-of-type-xslt-from-the-repository","errorCode":null,"errorMessage":"Unable to load job entry of type 'xslt' from the repository for id_jobentry=<id_jobentry>","messagePattern":"Unable to load job entry of type 'xslt' 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/xslt/JobEntryXSLT.java","lineNumber":265,"sourceCode":"      xsltfactory = rep.getJobEntryAttributeString( id_jobentry, \"xsltfactory\" );\n      if ( xsltfactory == null ) {\n        xsltfactory = FACTORY_JAXP;\n      }\n\n      int nrparams = rep.countNrJobEntryAttributes( id_jobentry, \"param_name\" );\n      int nroutputprops = rep.countNrJobEntryAttributes( id_jobentry, \"output_property_name\" );\n      allocate( nrparams, nroutputprops );\n\n      for ( int i = 0; i < nrparams; i++ ) {\n        parameterField[i] = rep.getJobEntryAttributeString( id_jobentry, i, \"param_field\" );\n        parameterName[i] = rep.getJobEntryAttributeString( id_jobentry, i, \"param_name\" );\n      }\n      for ( int i = 0; i < nroutputprops; i++ ) {\n        outputPropertyName[i] = rep.getJobEntryAttributeString( id_jobentry, i, \"output_property_name\" );\n        outputPropertyValue[i] = rep.getJobEntryAttributeString( id_jobentry, i, \"output_property_value\" );\n      }\n    } catch ( KettleException dbe ) {\n      throw new KettleException( \"Unable to load job entry of type 'xslt' 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(), \"xslfilename\", xslfilename );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"outputfilename\", outputfilename );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"iffileexists\", iffileexists );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"addfiletoresult\", addfiletoresult );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"filenamesfromprevious\", filenamesfromprevious );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"xsltfactory\", xsltfactory );\n\n      for ( int i = 0; i < parameterName.length; i++ ) {\n        rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"param_field\", parameterField[i] );\n        rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"param_name\", parameterName[i] );\n      }","sourceCodeStart":247,"sourceCodeEnd":283,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/xml/core/src/main/java/org/pentaho/di/job/entries/xslt/JobEntryXSLT.java#L247-L283","documentation":"JobEntryXSLT.loadRep rethrows KettleException when reading the entry's attributes, including the indexed output_property_name/output_property_value rows, from the repository fails for the given id_jobentry.","triggerScenarios":"Loading an XSLT job entry from the repository where getJobEntryAttributeString throws KettleException (DB outage, missing rows, schema mismatch).","commonSituations":"Repository database unreachable; r_jobentry_attribute rows missing or corrupted; repository schema version drift between PDI versions.","solutions":["Check the wrapped KettleException cause","Verify repository database connectivity","Confirm the numbered attribute rows exist for this id_jobentry","Repair or upgrade the repository schema"],"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":["Monitor repository DB availability","Avoid direct database manipulation of repository tables","Keep repository schema and PDI versions aligned","Maintain repository backups"],"tags":["pdi","repository","database","xslt"],"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"}