diff options
author | olaola <olaola@google.com> | 2017-11-17 08:03:37 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2017-11-17 08:05:10 -0800 |
commit | a9b5f8b646bb7bd2c34a3b2515fc8d97dfe02a6e (patch) | |
tree | ad7959ed7199bd98c69dc2c1bfe3ec7f8b12a938 /src/main | |
parent | a7b5a53c9a0251763ce30d37bc5963b0cd4c88fb (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')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/remote/Digests.java | 6 |
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()); } } |