code: @Transactional
  	public void processMessage(ProcessInstance processInstance,
  			Message<?> message, MessageMapper messageMapper) {
  		Object context = getContextDAO().getContext(processInstance.getObjectInstance());
  		processInstance.setStatus(TaskStatus.GO);
  		try {
  			messageMapper.unpackMessage(message, context);
  		} catch (Exception e) {
  			processInstance.setStatus(TaskStatus.ABORTING);
  			processInstance.setComment(e.getMessage());
  		}
  		log.debug("set status to processInstance {} to {} {}",processInstance.getId(),processInstance.getStatus(),context);
  		getContextDAO().mergeContext(context);
  		getWorkflowDAO().mergeProcessInstance(processInstance);
  		getWorkflowDAO().flush();
  		if (log.isDebugEnabled()) {
  			getWorkflowDAO().getActiveProcesses();
  		}
  	}
docs: /* (non-Javadoc)
  @see nz.co.senanque.workflow.WorkflowManager#processMessage(nz.co.senanque.workflow.instances.ProcessInstance, org.springframework.integration.Message, nz.co.senanque.messaging.MessageMapper)