// ExecutionEntity processInstance = (ExecutionEntity) this
// .createProcessInstance(processDefinition);
// ExecutionEntity processInstance = (ExecutionEntity) processDefinition
// .createProcessInstanceForInitial(processDefinition.getInitial());
// processInstance.setId(processInstanceId);
ExecutionEntity processInstance = (ExecutionEntity) this
.createProcessInstance(processDefinition, processInstanceId);
processInstance.setExecutions(new ArrayList<ExecutionEntity>());
processInstance.setProcessDefinition(processDefinition);
// Do not initialize variable map (let it happen lazily)
if (businessKey != null) {
processInstance.setBusinessKey(businessKey);
}
// Reset the process instance in order to have the db-generated process instance id available
processInstance.setProcessInstance(processInstance);
String initiatorVariableName = (String) processDefinition
.getProperty(BpmnParse.PROPERTYNAME_INITIATOR_VARIABLE_NAME);
if (initiatorVariableName != null) {
processInstance.setVariable(initiatorVariableName,
authenticatedUserId);
}
// if (authenticatedUserId != null) {
// processInstance.addIdentityLink(authenticatedUserId,