aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar philwo <philwo@google.com>2017-04-27 20:24:42 +0200
committerGravatar Vladimir Moskva <vladmos@google.com>2017-04-28 01:02:40 +0200
commit8e753330168250677f63d07aa6395276c8e097ab (patch)
tree3ca4acdbe6e3adc04ca33ebae210f9efc0560d23 /src
parentbcecca55159b929648d2a4def2f4580681c5c7c8 (diff)
worker: Small refactoring of RecordingInputStream.
Prevents it from potentially throwing an UnsupportedEncodingException. Part of #2855. PiperOrigin-RevId: 154446897
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/RecordingInputStream.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/WorkerTestStrategy.java4
3 files changed, 7 insertions, 10 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/worker/RecordingInputStream.java b/src/main/java/com/google/devtools/build/lib/worker/RecordingInputStream.java
index 1128cea762..77e3f39032 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/RecordingInputStream.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/RecordingInputStream.java
@@ -14,12 +14,12 @@
package com.google.devtools.build.lib.worker;
+import static java.nio.charset.StandardCharsets.UTF_8;
+
import java.io.ByteArrayOutputStream;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.nio.charset.Charset;
import java.util.regex.Pattern;
/**
@@ -27,7 +27,7 @@ import java.util.regex.Pattern;
*
* <p>The number bytes to record can be set via {@link #startRecording(int)}}, which also discards
* any already recorded data. The recorded data can be retrieved via {@link
- * #getRecordedDataAsString(Charset)}.
+ * #getRecordedDataAsString()}.
*/
final class RecordingInputStream extends FilterInputStream {
private static final Pattern NON_PRINTABLE_CHARS =
@@ -103,8 +103,8 @@ final class RecordingInputStream extends FilterInputStream {
* Returns the recorded data as a string, where non-printable characters are replaced with a '?'
* symbol.
*/
- public String getRecordedDataAsString(Charset charsetName) throws UnsupportedEncodingException {
- String recordedString = recordedData.toString(charsetName.name());
+ public String getRecordedDataAsString() {
+ String recordedString = new String(recordedData.toByteArray(), UTF_8);
return NON_PRINTABLE_CHARS.matcher(recordedString).replaceAll("?").trim();
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
index 4adbf43d9e..038c48d831 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
@@ -15,7 +15,6 @@ package com.google.devtools.build.lib.worker;
import static java.nio.charset.StandardCharsets.UTF_8;
-import com.google.common.base.Charsets;
import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -298,7 +297,7 @@ public final class WorkerSpawnStrategy implements SandboxedSpawnActionContext {
ErrorMessage errorMessage =
ErrorMessage.builder()
.message("Worker process returned an unparseable WorkResponse:")
- .logText(recordingStream.getRecordedDataAsString(Charsets.UTF_8))
+ .logText(recordingStream.getRecordedDataAsString())
.build();
eventHandler.handle(Event.warn(errorMessage.toString()));
throw e;
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerTestStrategy.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerTestStrategy.java
index e9101918e7..114f491b7f 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerTestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerTestStrategy.java
@@ -14,8 +14,6 @@
package com.google.devtools.build.lib.worker;
-import static java.nio.charset.StandardCharsets.UTF_8;
-
import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -162,7 +160,7 @@ public class WorkerTestStrategy extends StandaloneTestStrategy {
// to stdout - it's probably a stack trace or some kind of error message that will help the
// user figure out why the compiler is failing.
recordingStream.readRemaining();
- String data = recordingStream.getRecordedDataAsString(UTF_8);
+ String data = recordingStream.getRecordedDataAsString();
ErrorMessage errorMessage =
ErrorMessage.builder()
.message("Worker process returned an unparseable WorkResponse:")