{"record":{"id":"2e329c857878dea1","repo":"pentaho/pentaho-kettle","slug":"jobevalfilesmetrics-error-exception-unableloadrep","errorCode":null,"errorMessage":"JobEvalFilesMetrics.Error.Exception.UnableLoadRep","messagePattern":"JobEvalFilesMetrics\\.Error\\.Exception\\.UnableLoadRep","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/job/entries/evalfilesmetrics/JobEntryEvalFilesMetrics.java","lineNumber":305,"sourceCode":"      ResultFieldFile = rep.getJobEntryAttributeString( id_jobentry, \"result_field_file\" );\n      ResultFieldWildcard = rep.getJobEntryAttributeString( id_jobentry, \"result_field_wild\" );\n      ResultFieldIncludesubFolders =\n        rep.getJobEntryAttributeString( id_jobentry, \"result_field_includesubfolders\" );\n      comparevalue = rep.getJobEntryAttributeString( id_jobentry, \"comparevalue\" );\n      minvalue = rep.getJobEntryAttributeString( id_jobentry, \"minvalue\" );\n      maxvalue = rep.getJobEntryAttributeString( id_jobentry, \"maxvalue\" );\n      successConditionType =\n        JobEntrySimpleEval.getSuccessNumberConditionByCode( Const.NVL( rep.getJobEntryAttributeString(\n          id_jobentry, \"successnumbercondition\" ), \"\" ) );\n      sourceFiles =\n        getSourceFilesByCode( Const.NVL( rep.getJobEntryAttributeString( id_jobentry, \"source_files\" ), \"\" ) );\n      evaluationType =\n        getEvaluationTypeByCode( Const\n          .NVL( rep.getJobEntryAttributeString( id_jobentry, \"evaluation_type\" ), \"\" ) );\n      scale = getScaleByCode( Const.NVL( rep.getJobEntryAttributeString( id_jobentry, \"scale\" ), \"\" ) );\n    } catch ( KettleException dbe ) {\n\n      throw new KettleException( BaseMessages.getString( PKG, \"JobEvalFilesMetrics.Error.Exception.UnableLoadRep\" )\n        + id_jobentry, dbe );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {\n    try {\n\n      // save the arguments...\n      if ( sourceFileFolder != null ) {\n        for ( int i = 0; i < sourceFileFolder.length; i++ ) {\n          rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"source_filefolder\", sourceFileFolder[i] );\n          rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"wildcard\", sourceWildcard[i] );\n          rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"include_subFolders\", sourceIncludeSubfolders[i] );\n        }\n      }\n\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"result_filenames_wildcard\", resultFilenamesWildcard );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"result_field_file\", ResultFieldFile );","sourceCodeStart":287,"sourceCodeEnd":323,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/job/entries/evalfilesmetrics/JobEntryEvalFilesMetrics.java#L287-L323","documentation":"JobEntryEvalFilesMetrics.loadRep() loads this entry's attributes (evaluation_type, scale, source_files, etc.) from the repository; any KettleException from the repository calls is rethrown as a KettleException with localized message 'JobEvalFilesMetrics.Error.Exception.UnableLoadRep' concatenated with the job entry id. It means the stored configuration for this entry could not be read from the repository.","triggerScenarios":"Loading a job from a repository where rep.getJobEntryAttributeString(...) for fields like 'evaluation_type' or 'scale' throws KettleDatabaseException (wrapped as KettleException).","commonSituations":"Missing rows in r_jobentry_attribute for the entry; repository DB connectivity problems; schema version mismatch; partial save left the entry's attributes incomplete.","solutions":["Check the chained cause for the JDBC/database error details.","Verify r_jobentry_attribute contains rows for the printed id_jobentry; re-save the entry to recreate them.","Test and repair the repository connection; run repository upgrade scripts if the schema is outdated.","Reload the job after restoring DB connectivity."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if (!rep.connect()) {\n  throw new IllegalStateException(\"Repository not reachable: \" + rep.getName());\n}","typeGuard":null,"tryCatchPattern":"try {\n  JobMeta meta = rep.loadJob(jobName, jobDir, null, null);\n} catch (KettleException e) {\n  logError(\"Repo load of EvalFilesMetrics failed for entry \" + e.getMessage(), e);\n  throw e;\n}","preventionTips":["Monitor repository DB availability and credentials.","Run repository upgrade scripts when upgrading Pentaho.","Re-save entries after failed/partial migrations to rebuild attributes.","Check r_jobentry_attribute rows exist for entries that fail to load."],"tags":["database","repository","job-entry","kettle"],"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"}