Refactor and cleanup the sandboxing code.
- Remove Optional<> where it's not needed. It's nice for return values, but IMHO it was overused in this code (e.g. Optional<List<X>> is an anti-pattern, as the list itself can already signal that it is empty).
- Use Bazel's own Path class when dealing with paths, not String or java.io.File.
- Move LinuxSandboxUtil into the "sandbox" package.
- Remove dead code and unused fields.
- Migrate deprecated VFS method calls to their replacements.
- Fix a bug in ExecutionStatistics where a FileInputStream was not closed.
Closes #4868.
PiperOrigin-RevId: 190217476
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
index 3299734..bbebefa 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
@@ -23,7 +23,6 @@
import com.google.devtools.build.lib.vfs.Path;
import java.io.IOException;
import java.time.Duration;
-import java.util.Optional;
/** Strategy that uses sandboxing to execute a process. */
// TODO(ulfjack): This class only exists for this annotation. Find a better way to handle this!
@@ -46,14 +45,10 @@
*
* @param cmdEnv the command environment to use
* @param sandboxBase path to the sandbox base directory
- * @param timeoutKillDelay an optional, additional grace period before killing timing out
- * commands. If not present, then no grace period is used and commands are killed instantly.
+ * @param timeoutKillDelay additional grace period before killing timing out commands
*/
static LinuxSandboxedSpawnRunner create(
- CommandEnvironment cmdEnv,
- Path sandboxBase,
- Optional<Duration> timeoutKillDelay)
- throws IOException {
+ CommandEnvironment cmdEnv, Path sandboxBase, Duration timeoutKillDelay) throws IOException {
Path inaccessibleHelperFile = sandboxBase.getRelative("inaccessibleHelperFile");
FileSystemUtils.touchFile(inaccessibleHelperFile);
inaccessibleHelperFile.setReadable(false);