private void signalWorkflowExecution()

in src/main/java/com/uber/cadence/serviceclient/WorkflowServiceTChannel.java [2457:2525]


  private void signalWorkflowExecution(
      SignalWorkflowExecutionRequest signalRequest,
      AsyncMethodCallback resultHandler,
      Long timeoutInMillis) {

    timeoutInMillis = validateAndUpdateTimeout(timeoutInMillis, options.getRpcTimeoutMillis());
    ThriftRequest<WorkflowService.SignalWorkflowExecution_args> request =
        buildThriftRequest(
            "SignalWorkflowExecution",
            new WorkflowService.SignalWorkflowExecution_args(signalRequest),
            timeoutInMillis);
    CompletableFuture<ThriftResponse<WorkflowService.SignalWorkflowExecution_result>> response =
        doRemoteCallAsync(request);
    response
        .whenComplete(
            (r, e) -> {
              try {
                if (e != null) {
                  resultHandler.onError(CheckedExceptionWrapper.wrap(e));
                  return;
                }
                WorkflowService.SignalWorkflowExecution_result result =
                    r.getBody(WorkflowService.SignalWorkflowExecution_result.class);
                if (r.getResponseCode() == ResponseCode.OK) {
                  resultHandler.onComplete(null);
                  return;
                }
                if (result.isSetBadRequestError()) {
                  resultHandler.onError(result.getBadRequestError());
                  return;
                }
                if (result.isSetEntityNotExistError()) {
                  resultHandler.onError(result.getEntityNotExistError());
                  return;
                }
                if (result.isSetWorkflowExecutionAlreadyCompletedError()) {
                  resultHandler.onError(result.getWorkflowExecutionAlreadyCompletedError());
                  return;
                }
                if (result.isSetServiceBusyError()) {
                  resultHandler.onError(result.getServiceBusyError());
                  return;
                }
                if (result.isSetDomainNotActiveError()) {
                  resultHandler.onError(result.getDomainNotActiveError());
                  return;
                }
                if (result.isSetLimitExceededError()) {
                  resultHandler.onError(result.getLimitExceededError());
                  return;
                }
                if (result.isSetClientVersionNotSupportedError()) {
                  resultHandler.onError(result.getClientVersionNotSupportedError());
                  return;
                }
                resultHandler.onError(
                    new TException("SignalWorkflowExecution failed with unknown error:" + result));
              } finally {
                if (r != null) {
                  r.release();
                }
              }
            })
        .exceptionally(
            (e) -> {
              log.error("Unexpected error in SignalWorkflowExecution", e);
              return null;
            });
  }