{"record":{"id":"2a0034dbc10108b6","repo":"pentaho/pentaho-kettle","slug":"getxmldatadialog-exception-filedoesnotexist","errorCode":null,"errorMessage":"GetXMLDataDialog.Exception.FileDoesNotExist","messagePattern":"GetXMLDataDialog\\.Exception\\.FileDoesNotExist","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/xml/core/src/main/java/org/pentaho/di/ui/trans/steps/getxmldata/GetXMLDataDialog.java","lineNumber":1401,"sourceCode":"            EnterTextDialog d =\n                new EnterTextDialog( shell, BaseMessages.getString( PKG, \"GetXMLDataDialog.AskXML.Title\" ),\n                    BaseMessages.getString( PKG, \"GetXMLDataDialog.AskXML.Message\" ), null );\n            xml = d.open();\n          }\n          populateLoopPaths( meta, xml, true, false );\n        }\n      } else {\n\n        FileInputList fileinputList = meta.getFiles( transMeta.getBowl(), transMeta );\n\n        if ( fileinputList.nrOfFiles() > 0 ) {\n          // Check the first file\n\n          if ( fileinputList.getFile( 0 ).exists() ) {\n            populateLoopPaths( meta, KettleVFS.getFilename( fileinputList.getFile( 0 ) ), false, false );\n          } else {\n            // The file not exists !\n            throw new KettleException( BaseMessages.getString( PKG, \"GetXMLDataDialog.Exception.FileDoesNotExist\",\n                KettleVFS.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, \"GetXMLDataDialog.FilesMissing.DialogMessage\" ) );\n          mb.setText( BaseMessages.getString( PKG, \"System.Dialog.Error.Title\" ) );\n          mb.open();\n        }\n      }\n    } catch ( Exception e ) {\n      new ErrorDialog( shell, BaseMessages.getString( PKG, \"GetXMLDataDialog.UnableToGetListOfPaths.Title\" ),\n          BaseMessages.getString( PKG, \"GetXMLDataDialog.UnableToGetListOfPaths.Message\" ), e );\n    }\n  }\n\n  private void get() {\n    InputStream is = null;","sourceCodeStart":1383,"sourceCodeEnd":1419,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/xml/core/src/main/java/org/pentaho/di/ui/trans/steps/getxmldata/GetXMLDataDialog.java#L1383-L1419","documentation":"Thrown by the GetXMLDataDialog when the user clicks a browse/preview action and the first file in the constructed FileInputList does not exist. The dialog builds a VFS file list from the filename/wildcard fields, checks fileinputList.getFile(0).exists(), and aborts with a KettleException naming the missing file so population of loop paths cannot proceed.","triggerScenarios":"The 'File/URL' field (or a variable in it) resolves to a nonexistent path when the dialog validates the first file; filename typed with typo; file deleted or on an unavailable network share.","commonSituations":"Variables not resolved to actual paths in the current environment; missing drive mount or SFTP host; case-sensitivity mismatch on Linux; file moved after configuring the step.","solutions":["Verify the file exists at the exact path shown in the exception message","Check that variables in the filename resolve correctly in this environment","Fix typos/case and confirm network mounts or remote connections are active"],"exampleFix":"// before\nFile: ${DATA_DIR}/sample.xml   // DATA_DIR unset => path missing\n// after\nFile: /data/inbound/sample.xml  (verified exists)","handlingStrategy":"validation","validationCode":"// Before opening/previewing, check the resolved file exists\njava.io.File f = new java.io.File(resolveVariables(filenameField));\nif (!f.exists()) {\n    throw new IllegalArgumentException(\"XML file does not exist: \" + f.getPath());\n}","typeGuard":null,"tryCatchPattern":"try {\n    dialog.open();\n} catch (KettleException e) {\n    if (e.getMessage().contains(\"FileDoesNotExist\")) {\n        // correct the filename or fix variable resolution and retry\n    }\n}","preventionTips":["Verify variable-driven filenames resolve in every target environment","Confirm network mounts/remote hosts are reachable before browsing","Avoid wildcards when you need a concrete sample file"],"tags":["kettle","dialog","vfs","file-not-found"],"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"}