diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java index ab2faa2c5f..2627968ac2 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java @@ -122,8 +122,14 @@ public final class RecursiveFilesystemTraversalFunction implements SkyFunction { } if (rootInfo.type.isFile()) { - // The root is a file or a symlink to one. - return resultForFileRoot(traversal.path, rootInfo); + if (traversal.pattern == null + || traversal.pattern.matcher( + rootInfo.realPath.getRelativePath().getPathString()).matches()) { + // The root is a file or a symlink to one. + return resultForFileRoot(traversal.path, rootInfo); + } else { + return RecursiveFilesystemTraversalValue.EMPTY; + } } // Otherwise the root is a directory or a symlink to one. |