JAMES-2139 New recipients should not be duplicated when RRT
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d42ec7f4 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d42ec7f4 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d42ec7f4 Branch: refs/heads/master Commit: d42ec7f4acc6dd422807bd437a6ec5605f739206 Parents: 3b5180d Author: quynhn <qngu...@linagora.com> Authored: Tue Sep 12 09:52:31 2017 +0700 Committer: Antoine Duprat <adup...@linagora.com> Committed: Wed Sep 13 10:23:34 2017 +0200 ---------------------------------------------------------------------- .../transport/mailets/RecipientRewriteTableProcessor.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/d42ec7f4/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java index b3ba95b..cbcf816 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java @@ -46,6 +46,7 @@ import com.github.steveash.guavate.Guavate; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; public class RecipientRewriteTableProcessor { private static final Logger LOGGER = LoggerFactory.getLogger(RecipientRewriteTableProcessor.class); @@ -77,9 +78,9 @@ public class RecipientRewriteTableProcessor { public void processMail(Mail mail) throws MessagingException{ ImmutableList<RrtExecutionResult> mappingDatas = toMappingDatas(mail); - ImmutableList<MailAddress> newRecipients = getRecipientsByCondition(mappingDatas, mappingData -> !mappingData.isError()); + ImmutableSet<MailAddress> newRecipients = getRecipientsByCondition(mappingDatas, mappingData -> !mappingData.isError()); - ImmutableList<MailAddress> errorMailAddresses = getRecipientsByCondition(mappingDatas, RrtExecutionResult::isError); + ImmutableSet<MailAddress> errorMailAddresses = getRecipientsByCondition(mappingDatas, RrtExecutionResult::isError); if (!errorMailAddresses.isEmpty()) { mailetContext.sendMail(mail.getSender(), errorMailAddresses, mail.getMessage(), Mail.ERROR); @@ -93,11 +94,11 @@ public class RecipientRewriteTableProcessor { } - private ImmutableList<MailAddress> getRecipientsByCondition(ImmutableList<RrtExecutionResult> mappingDatas, Predicate<RrtExecutionResult> filterCondition) { + private ImmutableSet<MailAddress> getRecipientsByCondition(ImmutableList<RrtExecutionResult> mappingDatas, Predicate<RrtExecutionResult> filterCondition) { return mappingDatas.stream() .filter(filterCondition) .flatMap(mailAddressesFromMappingData) - .collect(Guavate.toImmutableList()); + .collect(Guavate.toImmutableSet()); } private ImmutableList<RrtExecutionResult> toMappingDatas(final Mail mail) { --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org