WorkflowExecution signaledExecution = new WorkflowExecution();
signaledExecution.setWorkflowId(signalParameters.getWorkflowId());
signaledExecution.setRunId(signalParameters.getRunId());
final ChildWorkflowTryCatchFinally childTryCatch = workflowExecutions.get(signalParameters.getWorkflowId());
if (childTryCatch == null) {
throw new SignalExternalWorkflowException(0, signaledExecution, "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION");
}
String openExecutionRunId = childTryCatch.getWorkflowExecution().getRunId();
if (signalParameters.getRunId() != null && !openExecutionRunId.equals(signalParameters.getRunId())) {
throw new SignalExternalWorkflowException(0, signaledExecution, "Unknown Execution (runId doesn't match)");
}
childTryCatch.signalRecieved(signalParameters.getSignalName(), signalParameters.getInput());
return Promise.Void();
}