diff options
author | philwo <philwo@google.com> | 2017-04-27 20:24:42 +0200 |
---|---|---|
committer | Vladimir Moskva <vladmos@google.com> | 2017-04-28 01:02:40 +0200 |
commit | 8e753330168250677f63d07aa6395276c8e097ab (patch) | |
tree | 3ca4acdbe6e3adc04ca33ebae210f9efc0560d23 /src/main | |
parent | bcecca55159b929648d2a4def2f4580681c5c7c8 (diff) |
worker: Small refactoring of RecordingInputStream.
Prevents it from potentially throwing an UnsupportedEncodingException.
Part of #2855.
PiperOrigin-RevId: 154446897
Diffstat (limited to 'src/main')
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:") |