aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar olaola <olaola@google.com>2017-11-17 08:03:37 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-11-17 08:05:10 -0800
commita9b5f8b646bb7bd2c34a3b2515fc8d97dfe02a6e (patch)
treead7959ed7199bd98c69dc2c1bfe3ec7f8b12a938 /src/main/java/com/google/devtools
parenta7b5a53c9a0251763ce30d37bc5963b0cd4c88fb (diff)
Adding checks for empty metadata and digest.
This will avoid the uninformative NullPointerException for this case (#3913). The underlying cause is data dependency on directories, which we want to disable. In the future, it will be allowed, but in a more explicit form (e.g. trailing slash). TESTED=no RELNOTES: None PiperOrigin-RevId: 176109375
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/remote/Digests.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/remote/Digests.java b/src/main/java/com/google/devtools/build/lib/remote/Digests.java
index eadcb4c57e..c3b6e0d3a6 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/Digests.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/Digests.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.lib.remote;
import static java.nio.charset.StandardCharsets.UTF_8;
+import com.google.common.base.Preconditions;
import com.google.common.hash.HashCode;
import com.google.devtools.build.lib.actions.ActionInput;
import com.google.devtools.build.lib.actions.MetadataProvider;
@@ -105,6 +106,11 @@ public final class Digests {
public static Digest getDigestFromInputCache(ActionInput input, MetadataProvider cache)
throws IOException {
Metadata metadata = cache.getMetadata(input);
+ Preconditions.checkNotNull(metadata, "Input cache %s returned no value for %s", cache, input);
+ Preconditions.checkNotNull(
+ metadata.getDigest(),
+ "Null digest for %s, possible directory. Data dependencies on directories are not allowed.",
+ input);
return buildDigest(metadata.getDigest(), metadata.getSize());
}
}