Preconditions.checkNotNull(protobufBody);
ChannelListenerWithCoordinationId futureListener = queue.get(listener, clazz, connection);
OutboundRpcMessage m = new OutboundRpcMessage(RpcMode.REQUEST, rpcType, futureListener.getCoordinationId(), protobufBody, dataBodies);
connection.acquirePermit();
ChannelFuture channelFuture = connection.getChannel().writeAndFlush(m);
channelFuture.addListener(futureListener);
completed = true;
} catch (InterruptedException e) {
completed = true;
listener.failed(new RpcException("Interrupted while attempting to acquire outbound queue.", e));
} finally {