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/test/java/com/google/devtools/build/lib/rules | |
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/test/java/com/google/devtools/build/lib/rules')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/CreateIncSymlinkActionTest.java | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CreateIncSymlinkActionTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CreateIncSymlinkActionTest.java index 2f4a8e57bf..c447f67450 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CreateIncSymlinkActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CreateIncSymlinkActionTest.java @@ -25,6 +25,7 @@ import com.google.devtools.build.lib.actions.ArtifactRoot; import com.google.devtools.build.lib.actions.util.DummyExecutor; import com.google.devtools.build.lib.testutil.FoundationTestCase; import com.google.devtools.build.lib.util.Fingerprint; +import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.vfs.Symlinks; @@ -129,7 +130,7 @@ public class CreateIncSymlinkActionTest extends FoundationTestCase { CreateIncSymlinkAction action = new CreateIncSymlinkAction(NULL_ACTION_OWNER, ImmutableMap.of(a, b), outputDir); Path extra = rootDirectory.getRelative("out/extra"); - extra.getOutputStream().close(); + FileSystemUtils.createEmptyFile(extra); assertThat(extra.exists()).isTrue(); action.prepare(fileSystem, rootDirectory); assertThat(extra.exists()).isFalse(); |