aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/util
diff options
context:
space:
mode:
authorGravatar Han-Wen Nienhuys <hanwen@google.com>2015-02-18 16:59:12 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-02-18 16:59:12 +0000
commit2c41b59388d0cacc0202d0d470100db87dc5a1ab (patch)
treeac7484b9b8c828dfa6c6a072d9471dbd3439bb64 /src/main/java/com/google/devtools/build/lib/util
parentcbe004a0f76e60081b9fd0112e325a2f9d3d86cc (diff)
Add OutErr#close, and call that in test strategies.
This fixes "Text file is busy" when trying to execute log files for local tests just after blaze finishes. -- MOS_MIGRATED_REVID=86597766
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/util')
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/io/OutErr.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/util/io/OutErr.java b/src/main/java/com/google/devtools/build/lib/util/io/OutErr.java
index c4700eae77..c0988e60cd 100644
--- a/src/main/java/com/google/devtools/build/lib/util/io/OutErr.java
+++ b/src/main/java/com/google/devtools/build/lib/util/io/OutErr.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.util.io;
+import java.io.Closeable;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
@@ -23,7 +24,7 @@ import java.io.PrintWriter;
* A pair of output streams to be used for redirecting the output and error
* streams of a subprocess.
*/
-public class OutErr {
+public class OutErr implements Closeable {
private final OutputStream out;
private final OutputStream err;
@@ -42,6 +43,14 @@ public class OutErr {
this.err = err;
}
+ @Override
+ public void close() throws IOException {
+ out.close();
+ if (out != err) {
+ err.close();
+ }
+ }
+
/**
* This method redirects {@link System#out} / {@link System#err} into
* {@code this} object. After calling this method, writing to