{"record":{"id":"faaa8feee9451f9e","repo":"pentaho/pentaho-kettle","slug":"jobentrydeleteresultfilenames-cannotloadfromrep","errorCode":null,"errorMessage":"JobEntryDeleteResultFilenames.CanNotLoadFromRep","messagePattern":"JobEntryDeleteResultFilenames\\.CanNotLoadFromRep","errorType":"exception","errorClass":"KettleXMLException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/job/entries/deleteresultfilenames/JobEntryDeleteResultFilenames.java","lineNumber":115,"sourceCode":"      specifywildcard = \"Y\".equalsIgnoreCase( XMLHandler.getTagValue( entrynode, \"specify_wildcard\" ) );\n      wildcard = XMLHandler.getTagValue( entrynode, \"wildcard\" );\n      wildcardexclude = XMLHandler.getTagValue( entrynode, \"wildcardexclude\" );\n\n    } catch ( KettleXMLException xe ) {\n      throw new KettleXMLException( BaseMessages.getString(\n        PKG, \"JobEntryDeleteResultFilenames.CanNotLoadFromXML\", xe.getMessage() ) );\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      foldername = rep.getJobEntryAttributeString( id_jobentry, \"foldername\" );\n      specifywildcard = rep.getJobEntryAttributeBoolean( id_jobentry, \"specify_wildcard\" );\n      wildcard = rep.getJobEntryAttributeString( id_jobentry, \"wildcard\" );\n      wildcardexclude = rep.getJobEntryAttributeString( id_jobentry, \"wildcardexclude\" );\n    } catch ( KettleException dbe ) {\n      throw new KettleXMLException( BaseMessages.getString(\n        PKG, \"JobEntryDeleteResultFilenames.CanNotLoadFromRep\", \"\" + id_jobentry, dbe.getMessage() ) );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {\n    try {\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"foldername\", foldername );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"specify_wildcard\", specifywildcard );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"wildcard\", wildcard );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"wildcardexclude\", wildcardexclude );\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleXMLException( BaseMessages.getString(\n        PKG, \"JobEntryDeleteResultFilenames.CanNotSaveToRep\", \"\" + id_job, dbe.getMessage() ) );\n    }\n  }\n\n  public void setSpecifyWildcard( boolean specifywildcard ) {\n    this.specifywildcard = specifywildcard;","sourceCodeStart":97,"sourceCodeEnd":133,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/job/entries/deleteresultfilenames/JobEntryDeleteResultFilenames.java#L97-L133","documentation":"Thrown when reading a 'Delete Result Filenames' job entry's attributes (foldername, wildcard settings) from the repository fails. loadRep() catches the KettleException from the repository getters and rethrows as KettleXMLException with the entry id and the DB error message. Despite the XML exception type, the failure is repository/database related.","triggerScenarios":"Calling loadRep() while loading a job from a database repository when any rep.getJobEntryAttribute*() call throws: connection failure, missing table, or repository-level error.","commonSituations":"Repository DB unreachable mid-load; schema version mismatch after upgrade; orphaned/missing attribute rows; insufficient SELECT permissions on r_jobentry_attribute.","solutions":["Check dbe.getMessage() in the thrown error for the underlying repository problem","Restore database connectivity and retry the job load","Verify the repository schema is current (run upgrade scripts)","Re-save the entry from Spoon to rebuild its attribute rows"],"exampleFix":"// before\nentry.loadRep(rep, metaStore, idJobEntry, databases, slaveServers); // throws KettleXMLException on DB error\n// after\ntry {\n  entry.loadRep(rep, metaStore, idJobEntry, databases, slaveServers);\n} catch (KettleXMLException e) {\n  logError(\"Repo load failed for id \" + idJobEntry + \": \" + e.getMessage());\n  throw e;\n}","handlingStrategy":"try-catch","validationCode":"if (rep instanceof KettleDatabaseRepository\n    && !((KettleDatabaseRepository) rep).isConnected()) {\n  throw new IllegalStateException(\"Connect repository before loadRep\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  entry.loadRep(rep, metaStore, idJobEntry, databases, slaveServers);\n} catch (KettleXMLException e) {\n  // note: DB failure is wrapped in KettleXMLException here\n  logError(\"Repo load failed id=\" + idJobEntry + \": \" + e.getMessage());\n  throw e;\n}","preventionTips":["Ensure repository connection is alive before loading jobs","Keep repository schema upgraded with your Pentaho release","Check SELECT grants on repository tables","Note this entry wraps DB errors in KettleXMLException — inspect message, not just type"],"tags":["kettle","database","persistence","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"}