aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2017-03-20 16:30:11 +0000
committerGravatar Yue Gan <yueg@google.com>2017-03-21 12:49:29 +0000
commit8594de82e367fb463f2d02d3adda25fc99de9a9f (patch)
tree70e2f4234486ac3a228ece8a70a260f0d02915f2 /src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
parent1d7108814e9f1fd68dbbb92325779b4d5e4d0a91 (diff)
Rationalize null-ness checks in Runfiles
This now also checks symlink maps for null pointers, which it previously did not. Unfortunately, there's still one case where we add a null target to Runfiles (to represent an empty file) - this happens in Runfiles itself, and this change prevents any callers from doing so. -- PiperOrigin-RevId: 150634481 MOS_MIGRATED_REVID=150634481
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
index b311ebbe3b..2ef4c2ca33 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
@@ -134,8 +134,8 @@ public final class Runfiles {
private final Artifact artifact;
private SymlinkEntry(PathFragment path, Artifact artifact) {
- this.path = path;
- this.artifact = artifact;
+ this.path = Preconditions.checkNotNull(path);
+ this.artifact = Preconditions.checkNotNull(artifact);
}
public PathFragment getPath() {
@@ -146,10 +146,12 @@ public final class Runfiles {
return artifact;
}
+ @Override
public boolean isImmutable() {
return true;
}
+ @Override
public void write(Appendable buffer, char quotationMark) {
Printer.append(buffer, "SymlinkEntry(path = ");
Printer.write(buffer, getPath().toString(), quotationMark);
@@ -851,13 +853,11 @@ public final class Runfiles {
* Adds a symlink.
*/
public Builder addSymlink(PathFragment link, Artifact target) {
- Preconditions.checkNotNull(link);
- Preconditions.checkNotNull(target);
symlinksBuilder.add(new SymlinkEntry(link, target));
return this;
}
- /** Adds several symlinks. */
+ /** Adds several symlinks. Neither keys nor values may be null. */
public Builder addSymlinks(Map<PathFragment, Artifact> symlinks) {
for (Map.Entry<PathFragment, Artifact> symlink : symlinks.entrySet()) {
symlinksBuilder.add(new SymlinkEntry(symlink.getKey(), symlink.getValue()));
@@ -877,13 +877,11 @@ public final class Runfiles {
* Adds a root symlink.
*/
public Builder addRootSymlink(PathFragment link, Artifact target) {
- Preconditions.checkNotNull(link);
- Preconditions.checkNotNull(target);
rootSymlinksBuilder.add(new SymlinkEntry(link, target));
return this;
}
- /** Adds several root symlinks. */
+ /** Adds several root symlinks. Neither keys nor values may be null. */
public Builder addRootSymlinks(Map<PathFragment, Artifact> symlinks) {
for (Map.Entry<PathFragment, Artifact> symlink : symlinks.entrySet()) {
rootSymlinksBuilder.add(new SymlinkEntry(symlink.getKey(), symlink.getValue()));