{"record":{"id":"01836a210ea94e45","repo":"pentaho/pentaho-kettle","slug":"accessinputmeta-exception-filedoesnotexist","errorCode":"AccessInputMeta.Exception.FileDoesNotExist","errorMessage":"AccessInputMeta.Exception.FileDoesNotExist","messagePattern":"AccessInputMeta\\.Exception\\.FileDoesNotExist","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/ms-access/ui/src/main/java/org/pentaho/di/ui/trans/steps/accessinput/AccessInputDialog.java","lineNumber":1546,"sourceCode":"\n          // Get System tables\n          settables.addAll( accessDatabase.getSystemTableNames() );\n\n          // Get system tables\n\n          String[] tablenames = settables.toArray( new String[settables.size()] );\n          Const.sortStrings( tablenames );\n          EnterSelectionDialog dialog =\n            new EnterSelectionDialog( shell, tablenames,\n              BaseMessages.getString( PKG, \"AccessInputDialog.Dialog.SelectATable.Title\" ),\n              BaseMessages.getString( PKG, \"AccessInputDialog.Dialog.SelectATable.Message\" ) );\n          String tablename = dialog.open();\n          if ( tablename != null ) {\n            wTable.setText( tablename );\n          }\n        } else {\n          // The file not exists !\n          throw new KettleException( BaseMessages.getString(\n            PKG, \"AccessInputMeta.Exception.FileDoesNotExist\", KettleVFS\n              .getFilename( fileInputList.getFile( 0 ) ) ) );\n        }\n      } else {\n        // No file specified\n        MessageBox mb = new MessageBox( shell, SWT.OK | SWT.ICON_ERROR );\n        mb.setMessage( BaseMessages.getString( PKG, \"AccessInputDialog.FilesMissing.DialogMessage\" ) );\n        mb.setText( BaseMessages.getString( PKG, \"System.Dialog.Error.Title\" ) );\n        mb.open();\n      }\n    } catch ( Throwable e ) {\n      new ErrorDialog(\n        shell, BaseMessages.getString( PKG, \"AccessInputDialog.UnableToGetListOfTables.Title\" ), BaseMessages\n          .getString( PKG, \"AccessInputDialog.UnableToGetListOfTables.Message\" ), e );\n    } finally {\n      // Don't forget to close the bugger.\n      try {\n        if ( accessDatabase != null ) {","sourceCodeStart":1528,"sourceCodeEnd":1564,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/ms-access/ui/src/main/java/org/pentaho/di/ui/trans/steps/accessinput/AccessInputDialog.java#L1528-L1564","documentation":"In the AccessInputDialog UI, the 'Get fields/tables' action requires the first selected file of the file list to exist. If the resolved file does not exist, the dialog throws KettleException with AccessInputMeta.Exception.FileDoesNotExist instead of opening the browse dialog.","triggerScenarios":"Clicking the table/fields browse button in the Access Input dialog while the configured filename resolves to a nonexistent file (variable not set, typo, file deleted).","commonSituations":"Designing a step in Spoon with ${VAR}-based paths that aren't defined locally; file removed after initial configuration; missing drive mount on the developer machine.","solutions":["Enter/fix a valid path to an existing .mdb/.accdb file in the Filename field","Define the environment variable used in the path before browsing","Browse for the file using the file picker to avoid typos","Verify network drive/share availability","Recreate the Access file if deleted"],"exampleFix":"null","handlingStrategy":"validation","validationCode":"String real = transMeta.environmentSubstitute(wFilename.getText());\nif (!(new File(real).exists())) {\n  new MessageBox(shell, SWT.OK | SWT.ICON_ERROR).setMessage(\"File not found: \" + real);\n  return;\n}","typeGuard":null,"tryCatchPattern":"try {\n  // dialog get-fields action\n} catch (KettleException e) {\n  new MessageBox(shell, SWT.OK | SWT.ICON_ERROR).setMessage(e.getMessage());\n  // prompt user to fix the filename before proceeding\n}","preventionTips":["Use the Browse button to pick files instead of typing paths","Define path variables in Spoon's variables dialog before using the step","Verify file existence on the machine running Spoon","Handle deleted/moved files after config changes"],"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"}