Replace "transform path" references with "devirtualize path"
PiperOrigin-RevId: 727122010
Change-Id: I31df0c3aa343606e36372b40ebeba205fd11fe78
diff --git a/src/main/java/com/google/devtools/build/lib/exec/local/LocalSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/exec/local/LocalSpawnRunner.java
index af6fba0..680b8b9 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/local/LocalSpawnRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/local/LocalSpawnRunner.java
@@ -57,7 +57,6 @@
import com.google.devtools.build.lib.shell.TerminationStatus;
import com.google.devtools.build.lib.util.NetUtil;
import com.google.devtools.build.lib.util.io.FileOutErr;
-import com.google.devtools.build.lib.vfs.FileSystem.PathTransformer;
import com.google.devtools.build.lib.vfs.Path;
import com.google.errorprone.annotations.FormatMethod;
import com.google.errorprone.annotations.FormatString;
@@ -108,7 +107,7 @@
BinTools binTools,
ProcessWrapper processWrapper,
RunfilesTreeUpdater runfilesTreeUpdater) {
- this.execRoot = maybeTransform(execRoot);
+ this.execRoot = execRoot.devirtualize();
this.processWrapper = processWrapper;
this.localExecutionOptions = Preconditions.checkNotNull(localExecutionOptions);
this.hostName = NetUtil.getCachedShortHostName();
@@ -379,8 +378,8 @@
SubprocessBuilder subprocessBuilder = new SubprocessBuilder();
subprocessBuilder.setWorkingDirectory(execRoot.getPathFile());
- subprocessBuilder.setStdout(maybeTransform(outErr.getOutputPath()).getPathFile());
- subprocessBuilder.setStderr(maybeTransform(outErr.getErrorPath()).getPathFile());
+ subprocessBuilder.setStdout(outErr.getOutputPath().devirtualize().getPathFile());
+ subprocessBuilder.setStderr(outErr.getErrorPath().devirtualize().getPathFile());
subprocessBuilder.setEnv(environment);
ImmutableList<String> args;
if (processWrapper != null) {
@@ -536,12 +535,6 @@
}
}
- private static Path maybeTransform(Path path) {
- return (path.getFileSystem() instanceof PathTransformer pathTransformer)
- ? pathTransformer.transformPath(path)
- : path;
- }
-
private static FailureDetail makeFailureDetail(int exitCode, Status status, String actionType) {
FailureDetails.Spawn.Builder spawnFailure = FailureDetails.Spawn.newBuilder();
switch (status) {
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java b/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java
index c5776bc..532fb76 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java
@@ -843,8 +843,12 @@
"getNioPath() not supported for " + getClass().getName());
}
- /** Represents an arbitrary transform on a Path. */
- public interface PathTransformer {
- Path transformPath(Path original);
+ /**
+ * Represents a devirtualizer that undoes the virtualization of {@link Path}s established by
+ * {@link
+ * com.google.devtools.build.lib.runtime.BlazeModule.ModuleFileSystem#createWithVirtualization}.
+ */
+ public interface PathDevirtualizer {
+ Path devirtualizePath(Path original);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/Path.java b/src/main/java/com/google/devtools/build/lib/vfs/Path.java
index ab34c88..1194f06 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/Path.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/Path.java
@@ -22,7 +22,7 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.FileType;
-import com.google.devtools.build.lib.vfs.FileSystem.PathTransformer;
+import com.google.devtools.build.lib.vfs.FileSystem.PathDevirtualizer;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -84,10 +84,10 @@
return pathFragment.getPathString();
}
- public String getMaybeTransformedPathString() {
- return fileSystem instanceof PathTransformer pathTransformer
- ? pathTransformer.transformPath(this).getPathString()
- : getPathString();
+ public Path devirtualize() {
+ return (this.getFileSystem() instanceof PathDevirtualizer pathDevirtualizer)
+ ? pathDevirtualizer.devirtualizePath(this)
+ : this;
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java
index 544d8aa..83f5dfc 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java
@@ -20,7 +20,6 @@
import com.google.devtools.build.lib.actions.ExecutionRequirements.WorkerProtocolFormat;
import com.google.devtools.build.lib.util.CommandDescriptionForm;
import com.google.devtools.build.lib.util.CommandFailureUtils;
-import com.google.devtools.build.lib.vfs.FileSystem.PathTransformer;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.Objects;
@@ -91,7 +90,7 @@
WorkerProtocolFormat protocolFormat) {
this.args = Preconditions.checkNotNull(args);
this.env = Preconditions.checkNotNull(env);
- this.execRoot = Preconditions.checkNotNull(maybeTransform(execRoot));
+ this.execRoot = Preconditions.checkNotNull(execRoot.devirtualize());
this.mnemonic = Preconditions.checkNotNull(mnemonic);
this.workerFilesCombinedHash = Preconditions.checkNotNull(workerFilesCombinedHash);
this.workerFilesWithDigests = Preconditions.checkNotNull(workerFilesWithDigests);
@@ -103,12 +102,6 @@
hash = calculateHashCode();
}
- private static Path maybeTransform(Path path) {
- return (path.getFileSystem() instanceof PathTransformer pathTransformer)
- ? pathTransformer.transformPath(path)
- : path;
- }
-
public ImmutableList<String> getArgs() {
return args;
}