public ProcessInstance getRootProcessInstance()

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;
  }