JAMES-2529 Improve addressExtractor factory method

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/016a2826
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/016a2826
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/016a2826

Branch: refs/heads/master
Commit: 016a2826021340c825187ed408d7cce48602a410
Parents: 897cb08
Author: Benoit Tellier <btell...@linagora.com>
Authored: Thu Aug 30 09:24:11 2018 +0700
Committer: Antoine Duprat <adup...@linagora.com>
Committed: Thu Aug 30 15:07:01 2018 +0200

----------------------------------------------------------------------
 .../apache/james/jmap/mailet/filter/MailMatcher.java  | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/016a2826/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/MailMatcher.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/MailMatcher.java
 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/MailMatcher.java
index c9ea72b..4626a7f 100644
--- 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/MailMatcher.java
+++ 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/MailMatcher.java
@@ -21,7 +21,9 @@ package org.apache.james.jmap.mailet.filter;
 
 import static org.apache.james.jmap.api.filtering.Rule.Condition;
 
+import java.util.Arrays;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.stream.Stream;
 
@@ -30,7 +32,6 @@ import javax.mail.Message;
 import javax.mail.internet.AddressException;
 import javax.mail.internet.InternetAddress;
 
-import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.james.javax.AddressHelper;
 import org.apache.james.jmap.api.filtering.Rule;
@@ -179,9 +180,8 @@ public interface MailMatcher {
                     .map(Stream::of)
                     .orElse(Stream.empty());
     HeaderExtractor RECIPIENT_EXTRACTOR =  mail -> addressExtractor(
-            ArrayUtils.addAll(
                 mail.getMessage().getRecipients(Message.RecipientType.TO),
-                mail.getMessage().getRecipients(Message.RecipientType.CC)));
+                mail.getMessage().getRecipients(Message.RecipientType.CC));
 
     HeaderExtractor FROM_EXTRACTOR = mail -> 
addressExtractor(mail.getMessage().getFrom());
     HeaderExtractor CC_EXTRACTOR = 
recipientExtractor(Message.RecipientType.CC);
@@ -210,10 +210,12 @@ public interface MailMatcher {
         return mail -> addressExtractor(mail.getMessage().getRecipients(type));
     }
 
-    static Stream<String> addressExtractor(Address[] addresses) {
+    static Stream<String> addressExtractor(Address[]... addresses) {
         return Optional.ofNullable(addresses)
-                .map(AddressHelper::asStringStream)
-                .orElse(Stream.empty());
+            .map(Arrays::stream)
+            .orElse(Stream.empty())
+            .filter(Objects::nonNull)
+            .flatMap(AddressHelper::asStringStream);
     }
 
     static Optional<HeaderExtractor> getHeaderExtractor(Field field) {


---------------------------------------------------------------------
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