private Saga loadAndInvoke( EventProxy<?> event, String sagaId, Collection<AssociationValue> associations) { Saga saga = sagasInCreation.get(sagaId); if (saga == null) { saga = sagaRepository.load(sagaId); } if (saga == null || !saga.isActive() || !containsAny(saga.getAssociationValues(), associations)) { return null; } preProcessSaga(saga); try { doInvokeSaga(event, saga); } finally { commit(saga); } return saga; }