diff options
author | laszlocsomor <laszlocsomor@google.com> | 2018-07-05 01:12:47 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-05 01:14:00 -0700 |
commit | 09d20311d982606093ed881d779bb05a5ee70ed3 (patch) | |
tree | 4d78d0c6321dbb534593280595b05be3cd947dbc /src/tools/remote | |
parent | 8ff87c164f48dbabe3b20becd00dde90c50d46f5 (diff) |
Bazel server: ensure OutputStreams are closed
Use try-with-resources to ensure OutputStreams
that we open via FileSystem.OutputStream(path)
are closed.
Eagerly closing OutputStreams avoids hanging on to
file handles until the garbage collector finalizes
the OutputStream, meaning Bazel on Windows (and
other processes) can delete or mutate these files.
Hopefully this avoids intermittent file deletion
errors that sometimes occur on Windows.
See https://github.com/bazelbuild/bazel/issues/5512
RELNOTES: none
PiperOrigin-RevId: 203342889
Diffstat (limited to 'src/tools/remote')
-rw-r--r-- | src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/ByteStreamServer.java | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/ByteStreamServer.java b/src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/ByteStreamServer.java index 4010243579..066d93cf7c 100644 --- a/src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/ByteStreamServer.java +++ b/src/tools/remote/src/main/java/com/google/devtools/build/remote/worker/ByteStreamServer.java @@ -100,7 +100,7 @@ final class ByteStreamServer extends ByteStreamImplBase { Path temp = workPath.getRelative("upload").getRelative(UUID.randomUUID().toString()); try { FileSystemUtils.createDirectoryAndParents(temp.getParentDirectory()); - temp.getOutputStream().close(); + FileSystemUtils.createEmptyFile(temp); } catch (IOException e) { logger.log(SEVERE, "Failed to create temporary file for upload", e); responseObserver.onError(StatusUtils.internalError(e)); |