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

Reply via email to