in core/src/main/java/com/alibaba/smart/framework/engine/bpmn/behavior/gateway/helper/CommonGatewayHelper.java [252:276]
private static List<ExecutionContext> acquireResults(ExecutionContext context, ProcessEngineConfiguration processEngineConfiguration, Long latchWaitTime, List<Future<ExecutionContext>> futureExecutionResultList) throws TimeoutException {
ExceptionProcessor exceptionProcessor = processEngineConfiguration.getExceptionProcessor();
List<ExecutionContext> subThreadExecutionContextList = new ArrayList<>(futureExecutionResultList.size());
for (Future<ExecutionContext> future : futureExecutionResultList) {
try {
if (hasValidLatchWaitTime(latchWaitTime)) {
ExecutionContext subThreadExecutionContext = future.get(latchWaitTime, TimeUnit.MILLISECONDS);
subThreadExecutionContextList.add(subThreadExecutionContext);
} else {
ExecutionContext subThreadExecutionContext = future.get();
subThreadExecutionContextList.add(subThreadExecutionContext);
}
} catch (InterruptedException e) {
exceptionProcessor.process(e, context);
} catch (ExecutionException e) {
exceptionProcessor.process(e, context);
} catch (CancellationException e) {
throw e;
}
}
return subThreadExecutionContextList;
}