{"record":{"id":"e1f8a076125dc1da","repo":"pentaho/pentaho-kettle","slug":"unable-to-get-all-files-of-type-s","errorCode":null,"errorMessage":"Unable to get all files of type [%s]","messagePattern":"Unable to get all files of type \\[(.+?)\\]","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/PurRepository.java","lineNumber":1467,"sourceCode":"   * @return Ordered map of object types to list of files.\n   * @throws KettleException\n   */\n  private LinkedHashMap<RepositoryObjectType, List<RepositoryFile>> getFilesByType( List<RepositoryFile> allFiles,\n                                                                                    RepositoryObjectType... types )\n    throws KettleException {\n    // Must be ordered or we can't match up files with data and version summary\n    LinkedHashMap<RepositoryObjectType, List<RepositoryFile>>\n      filesByType =\n      new LinkedHashMap<RepositoryObjectType, List<RepositoryFile>>();\n    // Since type is not preserved in the RepositoryFile we must fetch files by type\n    for ( RepositoryObjectType type : types ) {\n      try {\n        List<RepositoryFile> files = getAllFilesOfType( null, type, false );\n        filesByType.put( type, files );\n        allFiles.addAll( files );\n      } catch ( Exception ex ) {\n        // TODO i18n\n        throw new KettleException( String.format( \"Unable to get all files of type [%s]\", type ), ex ); //$NON-NLS-1$\n      }\n    }\n    return filesByType;\n  }\n\n  @Override\n  public List<DatabaseMeta> readDatabases() throws KettleException {\n    readWriteLock.readLock().lock();\n    try {\n      boolean hasOsgiFolder = new File( SYSTEM_FOLDER ).exists();\n      List<RepositoryFile> children = getAllFilesOfType( null, RepositoryObjectType.DATABASE, false );\n      List<DatabaseMeta> dbMetas = new ArrayList<>();\n\n      //[PDI-18487] - Amount of POST calls from PDI client connected to Repository\n      //Grab data from all objects at once to lower calls to server\n      List<NodeRepositoryFileData> data = pur.getDataForReadInBatch( children, NodeRepositoryFileData.class );\n      Iterator<NodeRepositoryFileData> dataIter = data.iterator();\n","sourceCodeStart":1449,"sourceCodeEnd":1485,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/PurRepository.java#L1449-L1485","documentation":"Repository access failure in PurRepository.getFilesByType: an error occurred while collecting/reading all files of the requested types from the Pentaho repository. The formatted message includes the object types and wraps the underlying server/client exception.","triggerScenarios":"Calling getFilesByType / shared-object loading when getAllFilesOfType() fails for one type — e.g. repository search service error, deleted root folder, or permission failure scoped to that type's folder.","commonSituations":"Pentaho server search/index issues; the shared folder for one object type (e.g. slaveservers) removed while others remain.","solutions":["Check server logs for search/file service errors on the pentaho repository.","Recreate the missing shared-objects subfolder or restore from repository recycle bin.","Verify read permissions for the repository user on all shared object folders.","Upgrade/patch the pur plugin if the search API misbehaves for certain types."],"exampleFix":"// before\nMap<RepositoryObjectType, List<RepositoryFile>> byType = getFilesByType(SHARED_TYPES);\n// after\ntry {\n  Map<RepositoryObjectType, List<RepositoryFile>> byType = getFilesByType(SHARED_TYPES);\n} catch (KettleException e) {\n  logError(\"File listing failed: \" + e.getMessage(), e);\n}","handlingStrategy":"try-catch","validationCode":"// check directory exists before listing files of type\n// e.g. repository.exists(sharedFolder) == true","typeGuard":"boolean canRead = repository != null && repository.isConnected();","tryCatchPattern":"try { filesByType = getFilesByType(types); } catch (KettleException e) { log.error(\"listing failed for \" + e.getMessage(), e); }","preventionTips":["Recreate missing shared subfolders if manually deleted.","Check repository server search/index logs on failures.","Grant read permissions to all shared object type folders.","Retry listing after transient server issues."],"tags":["repository","kettle","file-listing"],"backgroundTag":"file-read-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"}