@Nullable
  private Response sendInput(final Request request) {
    final boolean alive = !myProcessHandler.isProcessTerminating() && !myProcessHandler.isProcessTerminated();
    if (alive) {
      // consume evaluation classpath, if any
      final Collection<String> cp = myEvalClasspathRef.getAndSet(null);
      if (cp != null) {
        for (String path : cp) {
          request.addClasspathItem(path);
        }
      }
      UIUtil.invokeLaterIfNeeded(() ->
      myConsoleView.performWhenNoDeferredOutput(() -> {
        try {
          myMessageWriter.send(request);
        }
        catch (IOException e) {
          LOG.info(e);
        }
      }));
    }
    final StringBuilder stdOut = new StringBuilder();
    Response response = null;
    try {
      response = myMessageReader.receive(unparsedText -> stdOut.append(unparsedText));
      return response;
    }
    catch (IOException e) {
      LOG.info(e);
    }
    finally {
      renderResponse(request, response, stdOut.toString());
    }
    return null;
  }
@Nullable
  private Response sendInput(final Request request)