private @Nullable HgCommandResult executeRemoteCommandInCurrentThread(final @Nullable VirtualFile repo,
                                                                        final @NotNull String operation,
                                                                        final @Nullable List<String> arguments,
                                                                        boolean forceAuthorization) {

    PassReceiver passReceiver = new PassReceiver(myProject, forceAuthorization, myIgnoreAuthorizationRequest, myState);
    SocketServer passServer = new SocketServer(passReceiver);
    try {
      int passPort = passServer.start();
      HgCommandResult result = super.executeInCurrentThread(repo, operation, prepareArguments(arguments, passPort));
      if (HgErrorUtil.isAuthorizationError(result)) {
        passReceiver.forgetPassword();
      }
      return result;
    }
    catch (IOException e) {
      showError(e);
      LOG.info("IOException during preparing command", e);
      return null;
    }
    finally {
      passServer.stop();
    }
  }
private @Nullable HgCommandResult executeRemoteCommandInCurrentThread(final @Nullable VirtualFile repo,
                                                                        final @NotNull String operation,
                                                                        final @Nullable List<String> arguments,
                                                                        boolean forceAuthorization)