{"record":{"id":"f3892a05fa972400","repo":"pentaho/pentaho-kettle","slug":"accessoutputmeta-exception-filedoesnotexist-f3892a","errorCode":"AccessOutputMeta.Exception.FileDoesNotExist","errorMessage":"AccessOutputMeta.Exception.FileDoesNotExist","messagePattern":"AccessOutputMeta\\.Exception\\.FileDoesNotExist","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/ms-access/ui/src/main/java/org/pentaho/di/ui/trans/steps/accessoutput/AccessOutputDialog.java","lineNumber":468,"sourceCode":"\n    stepname = wStepname.getText(); // return value\n\n    getInfo( input );\n\n    dispose();\n  }\n\n  private void getTableName() {\n    AccessOutputMeta meta = new AccessOutputMeta();\n    getInfo( meta );\n    // New class: SelectTableDialog\n    try {\n      String realFilename = transMeta.environmentSubstitute( meta.getFilename() );\n      FileObject fileObject = KettleVFS.getInstance( transMeta.getBowl() ).getFileObject( realFilename, transMeta );\n      File file = FileUtils.toFile( fileObject.getURL() );\n\n      if ( !file.exists() || !file.isFile() ) {\n        throw new KettleException( BaseMessages.getString(\n          PKG, \"AccessOutputMeta.Exception.FileDoesNotExist\", realFilename ) );\n      }\n\n      try ( Database database = new DatabaseBuilder( file ).setReadOnly( true ).open() ) {\n        Set<String> set = database.getTableNames();\n        String[] tablenames = set.toArray( new String[set.size()] );\n        EnterSelectionDialog dialog =\n          new EnterSelectionDialog( shell, tablenames,\n            BaseMessages.getString( PKG, \"AccessOutputDialog.Dialog.SelectATable.Title\" ),\n            BaseMessages.getString( PKG, \"AccessOutputDialog.Dialog.SelectATable.Message\" ) );\n        String tablename = dialog.open();\n        if ( tablename != null ) {\n          wTablename.setText( tablename );\n        }\n      }\n    } catch ( Throwable e ) {\n      new ErrorDialog(\n        shell, BaseMessages.getString( PKG, \"AccessOutputDialog.UnableToGetListOfTables.Title\" ), BaseMessages","sourceCodeStart":450,"sourceCodeEnd":486,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/ms-access/ui/src/main/java/org/pentaho/di/ui/trans/steps/accessoutput/AccessOutputDialog.java#L450-L486","documentation":"AccessOutputDialog.getTableName resolves the configured filename through VFS, converts it to a local File, and requires it to be an existing regular file before opening the Access DB read-only to list table names. If the file is missing, KettleException with AccessOutputMeta.Exception.FileDoesNotExist is thrown.","triggerScenarios":"Clicking the 'Browse table' button in the Access Output dialog when the substituted filename doesn't exist, is a directory, or the VFS URL cannot map to a real local file.","commonSituations":"Variable-based filename not defined at design time; file on an unmounted share; using a VFS URL scheme that does not resolve to a local path; file deleted since configuration.","solutions":["Set a valid existing .mdb/.accdb path in the Filename field","Define the variables used in the filename before browsing","Ensure the VFS URL resolves to a local file path","Mount/verify the network share hosting the file","Restore or recreate the Access database file"],"exampleFix":"null","handlingStrategy":"validation","validationCode":"String real = transMeta.environmentSubstitute(meta.getFilename());\nFileObject fo = KettleVFS.getInstance(transMeta.getBowl()).getFileObject(real, transMeta);\nFile f = FileUtils.toFile(fo.getURL());\nif (f == null || !f.exists() || !f.isFile()) {\n  throw new IllegalArgumentException(\"Access DB not a local file: \" + real);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Store Access files on paths accessible as local files from Spoon","Define all variables used in the filename before browsing tables","Avoid VFS schemes that don't map to java.io.File","Keep the database file at a stable location across environments"],"tags":["ui","file","access","pdi"],"backgroundTag":"file-not-found","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"}