aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2017-07-13 19:55:32 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-07-14 10:52:09 +0200
commit28adce590d95cb9aa826fcd9f939efbb8e1eab7e (patch)
tree4df40b5eebecd4f237a6343d5f3577c480600e24 /src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
parent5abf4ed4dc9fc134e47f9b56e3b65ba26d0ba9f0 (diff)
If globbing throws an IOException, fail to construct the package instead of constructing the package with an error.
Prior to this change, if a Package.Builder object was constructed, it was guaranteed that a Package (possibly with errors) would be created. This is no longer true: if an IOException is set on the Package.Builder object, it will throw a NoSuchPackageException during #build(). PiperOrigin-RevId: 161832111
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
index 33fb4aa5cb..4a6010faba 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
@@ -567,7 +567,11 @@ public class PackageFunction implements SkyFunction {
return null;
}
Package.Builder pkgBuilder = packageBuilderAndGlobDeps.value;
- pkgBuilder.buildPartial();
+ try {
+ pkgBuilder.buildPartial();
+ } catch (NoSuchPackageException e) {
+ throw new PackageFunctionException(e, Transience.TRANSIENT);
+ }
try {
// Since the Skyframe dependencies we request below in
// markDependenciesAndPropagateFilesystemExceptions are requested independently of