Always inject the runfiles prefix into the Runfiles.Builder.
The other constructor is now private.
--
MOS_MIGRATED_REVID=102252544
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 bdef891..2c44a32 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
@@ -19,7 +19,6 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
-import com.google.devtools.build.lib.Constants;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -221,7 +220,7 @@
NestedSet<SymlinkEntry> rootSymlinks,
NestedSet<PruningManifest> pruningManifests,
EmptyFilesSupplier emptyFilesSupplier) {
- this.suffix = suffix.isEmpty() ? Constants.DEFAULT_RUNFILES_PREFIX : suffix;
+ this.suffix = suffix;
this.unconditionalArtifacts = Preconditions.checkNotNull(artifacts);
this.symlinks = Preconditions.checkNotNull(symlinks);
this.rootSymlinks = Preconditions.checkNotNull(rootSymlinks);
@@ -505,7 +504,7 @@
/**
* Only used for Runfiles.EMPTY.
*/
- public Builder() {
+ private Builder() {
this.suffix = "";
}
@@ -769,12 +768,15 @@
* pruning manifests in the merge.
*/
private Builder merge(Runfiles runfiles, boolean includePruningManifests) {
+ if (runfiles.isEmpty()) {
+ return this;
+ }
+ // The suffix should be the same within any blaze build, except for the EMPTY runfiles, which
+ // may have an empty suffix, but that is covered above.
+ Preconditions.checkArgument(suffix.equals(runfiles.suffix));
artifactsBuilder.addTransitive(runfiles.getUnconditionalArtifacts());
symlinksBuilder.addTransitive(runfiles.getSymlinks());
rootSymlinksBuilder.addTransitive(runfiles.getRootSymlinks());
- if (suffix.isEmpty()) {
- suffix = runfiles.suffix;
- }
if (includePruningManifests) {
pruningManifestsBuilder.addTransitive(runfiles.getPruningManifests());
}