Search in sources :

Example 1 with WorkflowExecutionTerminatedEventAttributes

use of com.uber.cadence.WorkflowExecutionTerminatedEventAttributes in project cadence-client by uber-java.

the class WorkflowExecutionUtils method getResultFromCloseEvent.

private static byte[] getResultFromCloseEvent(WorkflowExecution workflowExecution, Optional<String> workflowType, HistoryEvent closeEvent) {
    if (closeEvent == null) {
        throw new IllegalStateException("Workflow is still running");
    }
    switch(closeEvent.getEventType()) {
        case WorkflowExecutionCompleted:
            return closeEvent.getWorkflowExecutionCompletedEventAttributes().getResult();
        case WorkflowExecutionCanceled:
            byte[] details = closeEvent.getWorkflowExecutionCanceledEventAttributes().getDetails();
            String message = details != null ? new String(details, StandardCharsets.UTF_8) : null;
            throw new CancellationException(message);
        case WorkflowExecutionFailed:
            WorkflowExecutionFailedEventAttributes failed = closeEvent.getWorkflowExecutionFailedEventAttributes();
            throw new WorkflowExecutionFailedException(failed.getReason(), failed.getDetails(), failed.getDecisionTaskCompletedEventId());
        case WorkflowExecutionTerminated:
            WorkflowExecutionTerminatedEventAttributes terminated = closeEvent.getWorkflowExecutionTerminatedEventAttributes();
            throw new WorkflowTerminatedException(workflowExecution, workflowType, terminated.getReason(), terminated.getIdentity(), terminated.getDetails());
        case WorkflowExecutionTimedOut:
            WorkflowExecutionTimedOutEventAttributes timedOut = closeEvent.getWorkflowExecutionTimedOutEventAttributes();
            throw new WorkflowTimedOutException(workflowExecution, workflowType, timedOut.getTimeoutType());
        default:
            throw new RuntimeException("Workflow end state is not completed: " + prettyPrintHistoryEvent(closeEvent));
    }
}
Also used : WorkflowExecutionFailedEventAttributes(com.uber.cadence.WorkflowExecutionFailedEventAttributes) WorkflowTimedOutException(com.uber.cadence.client.WorkflowTimedOutException) WorkflowTerminatedException(com.uber.cadence.client.WorkflowTerminatedException) CancellationException(java.util.concurrent.CancellationException) WorkflowExecutionTerminatedEventAttributes(com.uber.cadence.WorkflowExecutionTerminatedEventAttributes) WorkflowExecutionTimedOutEventAttributes(com.uber.cadence.WorkflowExecutionTimedOutEventAttributes)

Aggregations

WorkflowExecutionFailedEventAttributes (com.uber.cadence.WorkflowExecutionFailedEventAttributes)1 WorkflowExecutionTerminatedEventAttributes (com.uber.cadence.WorkflowExecutionTerminatedEventAttributes)1 WorkflowExecutionTimedOutEventAttributes (com.uber.cadence.WorkflowExecutionTimedOutEventAttributes)1 WorkflowTerminatedException (com.uber.cadence.client.WorkflowTerminatedException)1 WorkflowTimedOutException (com.uber.cadence.client.WorkflowTimedOutException)1 CancellationException (java.util.concurrent.CancellationException)1