From f0613f5f4c6fde6c9b05187a16b87916876ea2ef Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Tue, 29 Mar 2011 13:24:59 +0200 Subject: [PATCH] [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 --- .../org/navalplanner/web/common/ConfigurationModel.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/ConfigurationModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/ConfigurationModel.java index 771226ed3..156b4a25b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/ConfigurationModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/ConfigurationModel.java @@ -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")); } }