in ddm-bpm-rest/src/main/java/com/epam/digital/data/platform/bpms/rest/service/repository/ProcessInstanceRuntimeService.java [76:90]
public ProcessInstance getRootProcessInstance(ProcessInstance processInstance) {
log.info("Getting root process instance for process instance {}", processInstance.getId());
var nestedCount = 0;
var currentProcessInstance = processInstance;
while (nestedCount < MAX_NUMBER_OF_NESTED_SUB_PROCESSES &&
!processInstance.getId().equals(processInstance.getRootProcessInstanceId())) {
currentProcessInstance =
getProcessInstance(processInstance.getRootProcessInstanceId())
.orElseThrow(() -> new IllegalStateException("Root process instance not found"));
nestedCount++;
}
log.info("Got root process instance {}, for provided process instance {}",
processInstance.getId(), currentProcessInstance.getId());
return currentProcessInstance;
}