diff options
author | Janak Ramakrishnan <janakr@janakr-macbookair2.roam.corp.google.com> | 2016-04-18 00:38:19 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2016-04-18 10:43:32 +0000 |
commit | fbafe83b65965277e8c8c53b3f4b978b5507e021 (patch) | |
tree | 30b4d1bf1e874a009c2e538f373ff5c8943cfcfe /src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java | |
parent | 4d89d118048a4979a1ff2e69e3e99ffbc2056b14 (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.java | 6 |
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(); } |