@Override
      protected ExternalJavacProcessHandler createProcessHandler(UUID processId, @NotNull Process process, @NotNull String commandLine, boolean keepProcessAlive) {
        return new ExternalJavacProcessHandler(processId, process, commandLine, keepProcessAlive) {
          @Override
          public @NotNull Future<?> executeTask(@NotNull Runnable task) {
            return SharedThreadPool.getInstance().submit(task);
          }

          @Override
          protected @NotNull BaseOutputReader.Options readerOptions() {
            return BaseOutputReader.Options.NON_BLOCKING;
          }
        };
      }
@Override
      protected ExternalJavacProcessHandler createProcessHandler(UUID processId, @NotNull Process process, @NotNull String commandLine, boolean keepProcessAlive)