in src/main/java/com/uber/cadence/internal/testservice/TestWorkflowMutableStateImpl.java [639:674]
private void validateStartChildExecutionAttributes(
StartChildWorkflowExecutionDecisionAttributes a) throws BadRequestError {
if (a == null) {
throw new BadRequestError(
"StartChildWorkflowExecutionDecisionAttributes is not set on decision.");
}
if (a.getWorkflowId().isEmpty()) {
throw new BadRequestError("Required field WorkflowID is not set on decision.");
}
if (a.getWorkflowType() == null || a.getWorkflowType().getName().isEmpty()) {
throw new BadRequestError("Required field WorkflowType is not set on decision.");
}
// Inherit tasklist from parent workflow execution if not provided on decision
if (a.getTaskList() == null || a.getTaskList().getName().isEmpty()) {
a.setTaskList(startRequest.getTaskList());
}
// Inherit workflow timeout from parent workflow execution if not provided on decision
if (a.getExecutionStartToCloseTimeoutSeconds() <= 0) {
a.setExecutionStartToCloseTimeoutSeconds(
startRequest.getExecutionStartToCloseTimeoutSeconds());
}
// Inherit decision task timeout from parent workflow execution if not provided on decision
if (a.getTaskStartToCloseTimeoutSeconds() <= 0) {
a.setTaskStartToCloseTimeoutSeconds(startRequest.getTaskStartToCloseTimeoutSeconds());
}
RetryPolicy retryPolicy = a.getRetryPolicy();
if (retryPolicy != null) {
RetryState.validateRetryPolicy(retryPolicy);
}
}