33import java .io .IOException ;
44import java .io .UncheckedIOException ;
55import java .net .URI ;
6+ import java .nio .file .AccessDeniedException ;
67import java .nio .file .FileVisitResult ;
78import java .nio .file .Files ;
89import java .nio .file .Path ;
@@ -74,7 +75,8 @@ void locateWorkspaceItems(BuildSystemTargetBuildItem buildSystemTarget,
7475 Files .walkFileTree (projectRoot , new SimpleFileVisitor <Path >() {
7576 @ Override
7677 public FileVisitResult preVisitDirectory (Path dir , BasicFileAttributes attrs ) throws IOException {
77- if (Files .isHidden (dir ) || ignoreFolders .contains (dir .getFileName ().toString ())) {
78+ if (Files .isHidden (dir ) || ignoreFolders .contains (dir .getFileName ().toString ())
79+ || !Files .isReadable (dir ) || !Files .isExecutable (dir )) {
7880 return FileVisitResult .SKIP_SUBTREE ;
7981 }
8082 return FileVisitResult .CONTINUE ;
@@ -84,7 +86,7 @@ public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) th
8486 public FileVisitResult visitFile (Path file , BasicFileAttributes attrs ) throws IOException {
8587 String fileName = file .getFileName ().toString ();
8688 boolean shouldIgnore = Files .isHidden (file )
87- || file .startsWith (outputDir )
89+ || file .startsWith (outputDir ) || ! Files . isReadable ( file ) || ! Files . isExecutable ( file )
8890 || ignoreFilePatterns .stream ().anyMatch (p -> p .matcher (fileName ).matches ());
8991
9092 if (!shouldIgnore ) {
@@ -93,6 +95,18 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IO
9395 }
9496 return FileVisitResult .CONTINUE ;
9597 }
98+
99+ @ Override
100+ public FileVisitResult visitFileFailed (Path file , IOException exc ) throws IOException {
101+ if (exc instanceof AccessDeniedException ) {
102+ if (Files .isDirectory (file )) {
103+ return FileVisitResult .SKIP_SUBTREE ;
104+ } else {
105+ return FileVisitResult .CONTINUE ;
106+ }
107+ }
108+ return super .visitFileFailed (file , exc );
109+ }
96110 });
97111
98112 } catch (IOException e ) {
0 commit comments