This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit d1cca6c2a5306f35d8a32435220e820b3ce929db Author: Gautier DI FOLCO <gdifo...@linagora.com> AuthorDate: Mon Sep 23 13:05:45 2019 +0200 JAMES-2726 Take care of duplication in MemoryMailRepository --- .../memory/MemoryMailRepository.java | 24 ++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepository.java b/server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepository.java index 3a945a4..6df4dee 100644 --- a/server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepository.java +++ b/server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepository.java @@ -21,6 +21,7 @@ package org.apache.james.mailrepository.memory; import java.util.Collection; import java.util.Iterator; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import javax.mail.MessagingException; @@ -39,13 +40,7 @@ public class MemoryMailRepository implements MailRepository { @Override public MailKey store(Mail mail) { MailKey mailKey = MailKey.forMail(mail); - try { - Mail newMail = mail.duplicate(); - newMail.setName(mail.getName()); - mails.put(mailKey, newMail); - } catch (MessagingException e) { - throw new RuntimeException(e); - } + mails.put(mailKey, cloneMail(mail)); return mailKey; } @@ -56,7 +51,9 @@ public class MemoryMailRepository implements MailRepository { @Override public Mail retrieve(MailKey key) { - return mails.get(key); + return Optional.ofNullable(mails.get(key)) + .map(this::cloneMail) + .orElse(null); } @Override @@ -93,4 +90,15 @@ public class MemoryMailRepository implements MailRepository { public void removeAll() { mails.clear(); } + + private Mail cloneMail(Mail mail) { + try { + Mail newMail = mail.duplicate(); + newMail.setName(mail.getName()); + newMail.setState(mail.getState()); + return newMail; + } catch (MessagingException e) { + throw new RuntimeException(e); + } + } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org