diff --git a/grails-app/services/com/jcatalog/grailsflow/ProcessManagerService.groovy b/grails-app/services/com/jcatalog/grailsflow/ProcessManagerService.groovy index d67c051..0a52235 100644 --- a/grails-app/services/com/jcatalog/grailsflow/ProcessManagerService.groovy +++ b/grails-app/services/com/jcatalog/grailsflow/ProcessManagerService.groovy @@ -244,7 +244,7 @@ class ProcessManagerService implements InitializingBean { * * @return process ID value if process was started successfully */ - public synchronized def startProcess(def processTypeID, def user, def variables) { + public def startProcess(def processTypeID, def user, def variables) { // check processTypeID in supportedProcessTypes if (!processFactory.getProcessTypes().contains(processTypeID)) { log.error("Cannot start process of type '${processTypeID}'. Type is not supported.") @@ -304,13 +304,13 @@ class ProcessManagerService implements InitializingBean { updateProcessAssignees(basicProcess, processAssignees) - basicProcess.addToNodes(startNode) + BasicProcess.withTransaction {status-> + basicProcess.addToNodes(startNode) - if (startNodeDef.forcedStart) { - grailsflowLockService.lockProcessExecution(startNode) - } + if (startNodeDef.forcedStart) { + grailsflowLockService.lockProcessExecution(startNode) + } - BasicProcess.withTransaction {status-> if (!basicProcess.save(flush: true) ) { status.setRollbackOnly(); log.error("Cannot save process: "+basicProcess.errors)