aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java
diff options
context:
space:
mode:
authorGravatar Janak Ramakrishnan <janakr@janakr-macbookair2.roam.corp.google.com>2016-04-18 00:38:19 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-04-18 10:43:32 +0000
commitfbafe83b65965277e8c8c53b3f4b978b5507e021 (patch)
tree30b4d1bf1e874a009c2e538f373ff5c8943cfcfe /src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java
parent4d89d118048a4979a1ff2e69e3e99ffbc2056b14 (diff)
Tolerate NoSuchPackageException when processing subdirectories.
In RecursiveDirectoryTraversalFunction, we must tolerate NoSuchPackageException being thrown by subdirectories' nodes, since that can happen in a nokeep_going build. -- Change-Id: Id9a48256aa209775f27130186c58e03c788d20a9 Reviewed-on: https://bazel-review.googlesource.com/#/c/3392/5 MOS_MIGRATED_REVID=120081575
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java
index a701802c06..607e9b2c4e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java
@@ -19,6 +19,7 @@ import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
+import com.google.devtools.build.lib.packages.NoSuchPackageException;
import com.google.devtools.build.lib.packages.Package;
import com.google.devtools.build.lib.skyframe.RecursivePkgValue.RecursivePkgKey;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -45,6 +46,7 @@ public class RecursivePkgFunction implements SkyFunction {
this.directories = directories;
}
+ /** N.B.: May silently throw {@link NoSuchPackageException} in nokeep_going mode! */
@Override
public SkyValue compute(SkyKey skyKey, Environment env) {
return new MyTraversalFunction().visitDirectory((RecursivePkgKey) skyKey.argument(), env);
@@ -79,9 +81,7 @@ public class RecursivePkgFunction implements SkyFunction {
Map<SkyKey, SkyValue> subdirectorySkyValues) {
// Aggregate the transitive subpackages.
for (SkyValue childValue : subdirectorySkyValues.values()) {
- if (childValue != null) {
- visitor.addTransitivePackages(((RecursivePkgValue) childValue).getPackages());
- }
+ visitor.addTransitivePackages(((RecursivePkgValue) childValue).getPackages());
}
return visitor.createRecursivePkgValue();
}