[Bug #954] Handle concurrency support in Configuration window

In the confirm method, when there's an OptimisiticLockingExceptio, a
StaleObjectException happens first due to
storeAndRemoveEntitySequences(). So catch any type of Exception and
launch an OptimisticLockingException, that will be handled by the
ConcurrentModification support.

FEA: ItEr73S04BugFixing
This commit is contained in:
Diego Pino Garcia 2011-03-29 13:24:59 +02:00
parent 7bb18e5ea4
commit f0613f5f4c

View file

@ -25,7 +25,6 @@ import static org.navalplanner.web.I18nHelper._;
import java.util.ArrayList;
import java.util.Collection;
import java.util.ConcurrentModificationException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@ -48,7 +47,7 @@ import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
import org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException;
import org.springframework.dao.OptimisticLockingFailureException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -140,13 +139,12 @@ public class ConfigurationModel implements IConfigurationModel {
@Override
@Transactional
public void confirm() {
checkEntitySequences();
try {
configurationDAO.save(configuration);
storeAndRemoveEntitySequences();
} catch (HibernateOptimisticLockingFailureException e) {
throw new ConcurrentModificationException(
} catch (Exception e) {
throw new OptimisticLockingFailureException(
_("Some entity sequence was created during the configuration process, it is impossible to update entity sequence table. Please, try again later"));
}
}