FlowDefinition def = flowDefinitionLocator.getFlowDefinition(flowId);
FlowExecution execution;
try {
execution = snapshotImpl.unmarshal(def.getClassLoader());
} catch (SnapshotUnmarshalException e) {
throw new FlowExecutionRestorationFailureException(key, e);
}
flowExecutionFactory.restoreFlowExecution(execution, def, key, conversationScope, flowDefinitionLocator);
return execution;
}