in extension/storage/storage-custom/src/main/java/com/alibaba/smart/framework/engine/persister/custom/CustomExecutionInstanceStorage.java [39:84]
public ExecutionInstance find(String instanceId,
ProcessEngineConfiguration processEngineConfiguration) {
Collection<ProcessInstance> processInstances = PersisterSession.currentSession().getProcessInstances().values();
boolean matched = false;
ExecutionInstance executionInstance = null;
for (ProcessInstance processInstance : processInstances) {
List<ActivityInstance> activityInstances = processInstance.getActivityInstances();
if (null == activityInstances || activityInstances.isEmpty()) {
// do nothing , cause exception.
} else {
int size = activityInstances.size();
for (int i = size - 1; i >= 0; i--) {
ActivityInstance activityInstance = activityInstances.get(i);
List<ExecutionInstance> executionInstances = activityInstance.getExecutionInstanceList();
for (ExecutionInstance tempExecutionInstance : executionInstances) {
if (null != tempExecutionInstance && tempExecutionInstance.getInstanceId().equals(instanceId)) {
executionInstance = tempExecutionInstance;
matched = true;
break;
}
}
}
}
if (matched) {
break;
}
}
if(!matched){
throw new EngineException("No ExecutionInstance found for id : "+instanceId);
}
return executionInstance;
}