diff options
author | lberki <lberki@google.com> | 2018-02-06 09:27:30 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-06 09:29:08 -0800 |
commit | ac8eb42c3687906f6758cdaee23f7321b4be22ad (patch) | |
tree | a354c0b355b6136bc081a4cc81ad9a2a0fac4ae9 /src/main/java/com/google/devtools/build/lib/server | |
parent | e7b1db2c2656ccb660b9228122864f648a9bfd99 (diff) |
Move BlazeRuntime/BlazeCommandDispatcher shutdown to where they are created.
RELNOTES: None.
PiperOrigin-RevId: 184692000
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/server')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java b/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java index b768c9040b..58ad98edae 100644 --- a/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java +++ b/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java @@ -27,6 +27,7 @@ import com.google.devtools.build.lib.clock.Clock; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.runtime.BlazeCommandDispatcher.LockingMode; import com.google.devtools.build.lib.runtime.BlazeCommandResult; +import com.google.devtools.build.lib.runtime.BlazeRuntime; import com.google.devtools.build.lib.runtime.CommandExecutor; import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy; import com.google.devtools.build.lib.server.CommandProtos.CancelRequest; @@ -55,7 +56,7 @@ import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringWriter; import java.net.InetSocketAddress; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.security.SecureRandom; import java.util.ArrayList; import java.util.Collections; @@ -110,11 +111,6 @@ import javax.annotation.concurrent.GuardedBy; public class GrpcServerImpl implements RPCServer { private static final Logger logger = Logger.getLogger(GrpcServerImpl.class.getName()); - // UTF-8 won't do because we want to be able to pass arbitrary binary strings. - // Not that the internals of Bazel handle that correctly, but why not make at least this little - // part correct? - private static final Charset CHARSET = Charset.forName("ISO-8859-1"); - private static final long NANOSECONDS_IN_MS = TimeUnit.MILLISECONDS.toNanos(1); private class RunningCommand implements AutoCloseable { @@ -809,11 +805,6 @@ public class GrpcServerImpl implements RPCServer { return; } - ImmutableList.Builder<String> args = ImmutableList.builder(); - for (ByteString requestArg : request.getArgList()) { - args.add(requestArg.toString(CHARSET)); - } - String commandId; BlazeCommandResult result; @@ -823,8 +814,12 @@ public class GrpcServerImpl implements RPCServer { // Convert the startup options record to Java strings, source first. ImmutableList.Builder<Pair<String, String>> startupOptions = ImmutableList.builder(); for (StartupOption option : request.getStartupOptionsList()) { - startupOptions.add( - new Pair<>(option.getSource().toString(CHARSET), option.getOption().toString(CHARSET))); + // UTF-8 won't do because we want to be able to pass arbitrary binary strings. + // Not that the internals of Bazel handle that correctly, but why not make at least this + // little part correct? + startupOptions.add(new Pair<>( + option.getSource().toString(StandardCharsets.ISO_8859_1), + option.getOption().toString(StandardCharsets.ISO_8859_1))); } try (RunningCommand command = new RunningCommand()) { @@ -847,11 +842,19 @@ public class GrpcServerImpl implements RPCServer { new RpcOutputStream(command.id, responseCookie, StreamType.STDERR, sink)); try { + // UTF-8 won't do because we want to be able to pass arbitrary binary strings. + // Not that the internals of Bazel handle that correctly, but why not make at least this + // little part correct? + ImmutableList<String> args = request.getArgList().stream() + .map(arg -> arg.toString(StandardCharsets.ISO_8859_1)) + .collect(ImmutableList.toImmutableList()); + InvocationPolicy policy = InvocationPolicyParser.parsePolicy(request.getInvocationPolicy()); + logger.info(BlazeRuntime.getRequestLogString(args)); result = commandExecutor.exec( policy, - args.build(), + args, rpcOutErr, request.getBlockForLock() ? LockingMode.WAIT : LockingMode.ERROR_OUT, request.getClientDescription(), |