diff --git a/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java b/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java index 2f7d706..4b6f635 100644 --- a/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java +++ b/YACOSCore/ejbModule/org/yacos/core/article/ArticleManagerBean.java @@ -242,14 +242,21 @@ public class ArticleManagerBean implements IArticleManager, Serializable { try{ ut.begin(); Article article = this.getArticle(articleId); - User PCMember = em.find(User.class, memberId); - User referee = em.find(User.class, refereeId); - Delegation delegation = new Delegation(); - delegation.setArticle(article); - delegation.setPcMember(PCMember); - delegation.setReferee(referee); - em.persist(delegation); - ut.commit(); + //si la delegation est déjà faite , on remplace le referee + Query q = em.createQuery("from Delegation where article = ?"); + q.setParameter(1, article); + List delegations = q.getResultList(); + if(delegations.isEmpty()){ + User PCMember = em.find(User.class, memberId); + User referee = em.find(User.class, refereeId); + Delegation delegation = new Delegation(); + delegation.setArticle(article); + delegation.setPcMember(PCMember); + delegation.setReferee(referee); + em.persist(delegation); + } + ut.commit(); + } catch (Exception e) { try{ ut.rollback();