Hi, Kirti. Could you please provide the stack trace of this NPE? I check the code and I think maybe the problem lies in LocalFileSystem#listStatus. The code in line 161[1] may return null, which will let LocalFileSystem#listStatus return null. Then the `containedFiles` is null and the NPE occurs. I think we should add code to handle this situation as follows.
``` final FileStatus[] containedFiles = fs.listStatus(fileStatus.getPath()); if (containedFiles == null) { throw new FlinkRuntimeException("Cannot list files under " + fileStatus.getPath()); } for (FileStatus containedStatus : containedFiles) { addSplitsForPath(containedStatus, fs, target); } ``` Best, Hang [1] https://github.com/apache/flink/blob/9b1375520b6b351df7551d85fcecd920e553cc3a/flink-core/src/main/java/org/apache/flink/core/fs/local/LocalFileSystem.java#L161C32-L161C38 Kirti Dhar Upadhyay K via user <user@flink.apache.org> 于2024年3月6日周三 18:10写道: > Hi Team, > > > > I am using Flink File Source with Local File System. > > I am facing an issue, if source directory does not has read permission, it > is returning the list of files as null instead of throwing permission > exception (refer the highlighted line below), resulting in NPE. > > > > final FileStatus[] containedFiles = fs.listStatus(fileStatus.getPath()); > for (FileStatus containedStatus : containedFiles) { > addSplitsForPath(containedStatus, fs, target); > } > > Debugging the issue found that, SecurityManager is coming as null while > listing the files, hence skipping the permissions on directory. > > What is the way to set SecurityManager in Flink? > > > > Regards, > > Kirti Dhar > > >