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 24a70cfe3a66e4287c68827c9ef1d72c36e33fc3
Author: Benoit Tellier <[email protected]>
AuthorDate: Sun Jan 30 20:26:20 2022 +0700

    JAMES-3708 MailAddress::toInternetAddress should return an optional
    
    This forces callers to explicitly handle the missing
    case thus minimising the impact of possible defects
    (no NPE and quality caller should handle that in a
    graceful way).
    
    Also adds a log to simplify diagnostic.
---
 .../java/org/apache/james/core/MailAddress.java    |  8 +++---
 .../org/apache/james/core/MailAddressTest.java     |  4 +--
 .../apache/james/transport/mailets/ServerTime.java |  6 +++-
 .../mailetcontainer/impl/JamesMailetContext.java   |  4 ++-
 .../org/apache/james/transport/mailets/Bounce.java |  2 +-
 .../apache/james/transport/mailets/DSNBounce.java  |  2 +-
 .../james/transport/mailets/NotifyPostmaster.java  | 11 ++++++--
 .../james/transport/mailets/NotifySender.java      | 10 +++++--
 .../james/transport/mailets/WhiteListManager.java  | 15 ++++++----
 .../transport/mailets/jsieve/RejectAction.java     |  3 +-
 .../transport/mailets/jsieve/SieveMailAdapter.java |  4 ++-
 .../transport/mailets/redirect/MailModifier.java   | 12 ++++++--
 .../remote/delivery/InternetAddressConverter.java  |  2 +-
 .../james/transport/util/MailAddressUtils.java     |  2 +-
 .../org/apache/james/transport/util/TosUtils.java  |  2 +-
 .../james/transport/mailets/DSNBounceTest.java     | 10 +++----
 .../transport/mailets/NotifyPostmasterTest.java    |  8 +++---
 .../james/transport/mailets/NotifySenderTest.java  | 10 +++----
 .../james/transport/mailets/RedirectTest.java      |  3 +-
 .../james/transport/matchers/dlp/DlpTest.java      |  8 +++---
 .../transport/util/SpecialAddressesUtilsTest.java  | 32 +++++++++++-----------
 .../apache/james/transport/util/TosUtilsTest.java  |  8 +++---
 .../mailets/XOriginatingIpInNetworkSpec.scala      |  8 +++---
 23 files changed, 103 insertions(+), 71 deletions(-)

diff --git a/core/src/main/java/org/apache/james/core/MailAddress.java 
b/core/src/main/java/org/apache/james/core/MailAddress.java
index 2c67d79..58ef705 100644
--- a/core/src/main/java/org/apache/james/core/MailAddress.java
+++ b/core/src/main/java/org/apache/james/core/MailAddress.java
@@ -379,12 +379,12 @@ public class MailAddress implements java.io.Serializable {
      *
      * @return the address
      */
-    public InternetAddress toInternetAddress() {
+    public Optional<InternetAddress> toInternetAddress() {
         try {
-            return new InternetAddress(toString());
+            return Optional.of(new InternetAddress(toString()));
         } catch (javax.mail.internet.AddressException ae) {
-            //impossible really
-            return null;
+            LOGGER.warn("A valid address '{}' as per James criterial fails to 
parse as a javax.mail InternetAdrress", asString());
+            return Optional.empty();
         }
     }
 
diff --git a/core/src/test/java/org/apache/james/core/MailAddressTest.java 
b/core/src/test/java/org/apache/james/core/MailAddressTest.java
index a00a789..1920c35 100644
--- a/core/src/test/java/org/apache/james/core/MailAddressTest.java
+++ b/core/src/test/java/org/apache/james/core/MailAddressTest.java
@@ -117,7 +117,7 @@ class MailAddressTest {
     @MethodSource("goodAddresses")
     void toInternetAddressShouldNoop(String mailAddress) throws Exception {
         assertThat(new MailAddress(mailAddress).toInternetAddress())
-            .isNotNull();
+            .isNotEmpty();
     }
 
     @ParameterizedTest
@@ -171,7 +171,7 @@ class MailAddressTest {
         InternetAddress b = new InternetAddress(GOOD_ADDRESS);
         MailAddress a = new MailAddress(b);
 
-        assertThat(a.toInternetAddress()).isEqualTo(b);
+        assertThat(a.toInternetAddress()).contains(b);
         assertThat(a.toString()).isEqualTo(GOOD_ADDRESS);
     }
 
diff --git 
a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ServerTime.java
 
b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ServerTime.java
index 7dc52d3..b525eaa 100644
--- 
a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ServerTime.java
+++ 
b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ServerTime.java
@@ -21,12 +21,15 @@
 
 package org.apache.james.transport.mailets;
 
+import javax.mail.Address;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
 
+import com.github.fge.lambdas.Throwing;
+
 /**
  * Returns the current time for the mail server.  Sample configuration:
  * <pre><code>
@@ -61,7 +64,8 @@ public class ServerTime extends GenericMailet {
         // MAIL FROM/RCPT TO commands used to send the inquiry.
 
         if (response.getFrom() == null) {
-            
response.setFrom(mail.getRecipients().iterator().next().toInternetAddress());
+            mail.getRecipients().iterator().next().toInternetAddress()
+                
.ifPresent(Throwing.<Address>consumer(response::setFrom).sneakyThrow());
         }
 
         if (response.getAllRecipients() == null) {
diff --git 
a/server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
 
b/server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
index f14224b..49bff92 100644
--- 
a/server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
+++ 
b/server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
@@ -65,6 +65,7 @@ import org.apache.mailet.base.RFC2822Headers;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.github.fge.lambdas.Throwing;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableSet;
 
@@ -186,7 +187,8 @@ public class JamesMailetContext implements MailetContext, 
Configurable, Disposab
 
         // Change the sender...
         if (bouncer != null) {
-            reply.getMessage().setFrom(bouncer.toInternetAddress());
+            bouncer.toInternetAddress()
+                .ifPresent(Throwing.<Address>consumer(address -> 
reply.getMessage().setFrom(address)).sneakyThrow());
         }
 
         reply.getMessage().saveChanges();
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
index 2818995..d1883d1 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
@@ -129,7 +129,7 @@ public class Bounce extends GenericMailet implements 
RedirectNotify {
     private static final ImmutableSet<String> CONFIGURABLE_PARAMETERS = 
ImmutableSet.of(
             "debug", "passThrough", "fakeDomainCheck", "inline", "attachment", 
"message", "notice", "sender", "sendingAddress", "prefix", "attachError");
     private static final List<MailAddress> RECIPIENTS = 
ImmutableList.of(SpecialAddress.REVERSE_PATH);
-    private static final List<InternetAddress> TO = 
ImmutableList.of(SpecialAddress.REVERSE_PATH.toInternetAddress());
+    private static final List<InternetAddress> TO = 
SpecialAddress.REVERSE_PATH.toInternetAddress().stream().collect(ImmutableList.toImmutableList());
     private final DNSService dns;
 
     @Inject
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
index 0144d9a..e1b9528 100755
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
@@ -163,7 +163,7 @@ public class DSNBounce extends GenericMailet implements 
RedirectNotify {
 
     private static final ImmutableSet<String> CONFIGURABLE_PARAMETERS = 
ImmutableSet.of("debug", "passThrough", "messageString", "attachment", 
"sender", "prefix", "action", "defaultStatus");
     private static final List<MailAddress> RECIPIENT_MAIL_ADDRESSES = 
ImmutableList.of(SpecialAddress.REVERSE_PATH);
-    private static final List<InternetAddress> TO_INTERNET_ADDRESSES = 
ImmutableList.of(SpecialAddress.REVERSE_PATH.toInternetAddress());
+    private static final List<InternetAddress> TO_INTERNET_ADDRESSES = 
ImmutableList.of(SpecialAddress.REVERSE_PATH.toInternetAddress().get());
 
     private static final String LOCALHOST = "127.0.0.1";
     private static final Pattern DIAG_PATTERN = 
Patterns.compilePatternUncheckedException("^\\d{3}\\s.*$");
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
index be83f65..5ae9d8f 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
@@ -203,11 +203,18 @@ public class NotifyPostmaster extends GenericMailet 
implements RedirectNotify {
                     .allowedSpecials(ALLOWED_SPECIALS)
                     .getSpecialAddress(to.get());
             if (specialAddress.isPresent()) {
-                return 
ImmutableList.of(specialAddress.get().toInternetAddress());
+                return specialAddress
+                    .flatMap(MailAddress::toInternetAddress)
+                    .map(ImmutableList::of)
+                    .orElse(ImmutableList.of());
             }
             LOGGER.info("\"to\" parameter ignored, set to postmaster");
         }
-        return 
ImmutableList.of(getMailetContext().getPostmaster().toInternetAddress());
+        return getMailetContext()
+            .getPostmaster()
+            .toInternetAddress()
+            .map(ImmutableList::of)
+            .orElse(ImmutableList.of());
     }
 
     @Override
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
index 2b3888e..668b9ff 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
@@ -203,11 +203,17 @@ public class NotifySender extends GenericMailet 
implements RedirectNotify {
                     .allowedSpecials(ALLOWED_SPECIALS)
                     .getSpecialAddress(to.get());
             if (specialAddress.isPresent()) {
-                return 
ImmutableList.of(specialAddress.get().toInternetAddress());
+                return specialAddress
+                    .flatMap(MailAddress::toInternetAddress)
+                    .map(ImmutableList::of)
+                    .orElse(ImmutableList.of());
             }
             LOGGER.info("\"to\" parameter ignored, set to sender");
         }
-        return ImmutableList.of(SpecialAddress.SENDER.toInternetAddress());
+        return SpecialAddress.SENDER
+            .toInternetAddress()
+            .map(ImmutableList::of)
+            .orElse(ImmutableList.of());
     }
 
     @Override
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
index 2d17c4a..d91c5e5 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
@@ -38,6 +38,7 @@ import java.util.Set;
 import java.util.StringTokenizer;
 
 import javax.inject.Inject;
+import javax.mail.Address;
 import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.mail.Session;
@@ -61,6 +62,9 @@ import org.apache.mailet.base.RFC2822Headers;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.github.fge.lambdas.Throwing;
+import com.google.common.collect.ImmutableList;
+
 /**
  * <p>
  * Manages for each local user a "white list" of remote addresses whose 
messages
@@ -396,7 +400,7 @@ public class WhiteListManager extends GenericMailet {
             selectRS = selectStmt.executeQuery();
             while (selectRS.next()) {
                 MailAddress mailAddress = new 
MailAddress(selectRS.getString(1), selectRS.getString(2));
-                out.println(mailAddress.toInternetAddress().toString());
+                out.println(mailAddress.toString());
             }
 
             out.println();
@@ -664,12 +668,13 @@ public class WhiteListManager extends GenericMailet {
             MimeMessage reply = new 
MimeMessage(Session.getDefaultInstance(System.getProperties(), null));
 
             // Create the list of recipients in the Address[] format
-            InternetAddress[] rcptAddr = new InternetAddress[1];
-            rcptAddr[0] = senderMailAddress.toInternetAddress();
-            reply.setRecipients(Message.RecipientType.TO, rcptAddr);
+            reply.setRecipients(Message.RecipientType.TO, 
senderMailAddress.toInternetAddress().stream()
+                .collect(ImmutableList.toImmutableList())
+                .toArray(new InternetAddress[0]));
 
             // Set the sender...
-            reply.setFrom(notifier.toInternetAddress());
+            notifier.toInternetAddress()
+                
.ifPresent(Throwing.<Address>consumer(reply::setFrom).sneakyThrow());
 
             // Create the message body
             MimeMultipart multipart = new MimeMultipart();
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java
index eca6337..018bfcd 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java
@@ -133,7 +133,8 @@ public class RejectAction implements MailAction {
 
         // Send the message
         MimeMessage reply = (MimeMessage) aMail.getMessage().reply(false);
-        reply.setFrom(soleRecipient.toInternetAddress());
+        soleRecipient.toInternetAddress()
+            
.ifPresent(Throwing.<Address>consumer(reply::setFrom).sneakyThrow());
         reply.setContent(multipart);
         reply.saveChanges();
         Address[] recipientAddresses = reply.getAllRecipients();
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
index 7728a05..2fb44cf 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
@@ -31,6 +31,7 @@ import java.util.Set;
 
 import javax.mail.Header;
 import javax.mail.MessagingException;
+import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
@@ -271,7 +272,8 @@ public class SieveMailAdapter implements MailAdapter, 
EnvelopeAccessors, ActionC
     public String getEnvelopeTo() {
         return getMail().getRecipients()
             .stream()
-            .map(mailAddress -> mailAddress.toInternetAddress().getAddress())
+            .flatMap(mailAddress -> mailAddress.toInternetAddress().stream())
+            .map(InternetAddress::getAddress)
             .filter(Objects::nonNull)
             .findFirst()
             .orElse(null);
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
index cf1113e..a39bfa4 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
@@ -23,6 +23,7 @@ import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Optional;
 
+import javax.mail.Address;
 import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.mail.internet.InternetAddress;
@@ -39,6 +40,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.github.fge.lambdas.Throwing;
+import com.github.fge.lambdas.consumers.ThrowingConsumer;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 
@@ -146,7 +148,7 @@ public class MailModifier {
      */
     public void setReplyTo(Optional<MailAddress> optionalReplyTo) throws 
MessagingException {
         optionalReplyTo.ifPresent(Throwing
-            .consumer((MailAddress address) -> setReplyTo(address))
+            .consumer((ThrowingConsumer<MailAddress>) this::setReplyTo)
             .sneakyThrow());
     }
 
@@ -157,7 +159,10 @@ public class MailModifier {
                 LOGGER.debug("replyTo set to: null");
             }
         } else {
-            mail.getMessage().setReplyTo(new InternetAddress[] { 
replyTo.toInternetAddress() });
+            ImmutableList<InternetAddress> replyToAsList = 
replyTo.toInternetAddress()
+                .stream()
+                .collect(ImmutableList.toImmutableList());
+            mail.getMessage().setReplyTo(replyToAsList.toArray(new 
InternetAddress[0]));
             if (mailet.getInitParameters().isDebug()) {
                 LOGGER.debug("replyTo set to: {}", replyTo);
             }
@@ -204,7 +209,8 @@ public class MailModifier {
 
     public void setSender(Optional<MailAddress> sender) throws 
MessagingException {
         if (sender.isPresent()) {
-            mail.getMessage().setFrom(sender.get().toInternetAddress());
+            sender.flatMap(MailAddress::toInternetAddress)
+                .ifPresent(Throwing.<Address>consumer(address -> 
mail.getMessage().setFrom(address)).sneakyThrow());
 
             if (mailet.getInitParameters().isDebug()) {
                 LOGGER.debug("sender set to: {}", sender);
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/InternetAddressConverter.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/InternetAddressConverter.java
index 58c2a3f..4247c0e 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/InternetAddressConverter.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/InternetAddressConverter.java
@@ -32,7 +32,7 @@ public class InternetAddressConverter {
     public static ImmutableSet<InternetAddress> 
convert(Collection<MailAddress> recipients) {
         Preconditions.checkNotNull(recipients);
         return recipients.stream()
-            .map(MailAddress::toInternetAddress)
+            .flatMap(mailAddress -> mailAddress.toInternetAddress().stream())
             .collect(ImmutableSet.toImmutableSet());
     }
 }
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/MailAddressUtils.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/MailAddressUtils.java
index 5785fcf..b203005 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/MailAddressUtils.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/MailAddressUtils.java
@@ -55,7 +55,7 @@ public class MailAddressUtils {
 
     private static Stream<InternetAddress> 
streamOfInternetAddress(List<MailAddress> mailAddresses) {
         return mailAddresses.stream()
-            .map(MailAddress::toInternetAddress);
+            .flatMap(mailAddress -> mailAddress.toInternetAddress().stream());
     }
 
     public static boolean isUnalteredOrReversePathOrSender(MailAddress 
mailAddress) {
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/TosUtils.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/TosUtils.java
index a7fd76f..f1f4bc8 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/TosUtils.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/TosUtils.java
@@ -56,6 +56,6 @@ public class TosUtils {
 
     private boolean containsOnlyUnalteredOrTo(List<InternetAddress> 
apparentlyTo) {
         return apparentlyTo.size() == 1 && 
-                
(apparentlyTo.get(0).equals(SpecialAddress.UNALTERED.toInternetAddress()) || 
apparentlyTo.get(0).equals(SpecialAddress.RECIPIENTS.toInternetAddress()));
+                
(apparentlyTo.get(0).equals(SpecialAddress.UNALTERED.toInternetAddress().get()) 
|| 
apparentlyTo.get(0).equals(SpecialAddress.RECIPIENTS.toInternetAddress().get()));
     }
 }
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java
index a448476..c37959d 100644
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java
+++ 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java
@@ -116,7 +116,7 @@ public class DSNBounceTest {
 
         @Test
         void getToShouldReturnReversePathOnly() {
-            
assertThat(dsnBounce.getTo()).containsOnly(SpecialAddress.REVERSE_PATH.toInternetAddress());
+            
assertThat(dsnBounce.getTo()).containsOnly(SpecialAddress.REVERSE_PATH.toInternetAddress().get());
         }
 
         @Test
@@ -305,7 +305,7 @@ public class DSNBounceTest {
             SentMail sentMail = sentMails.get(0);
 
             assertThat(sentMail.getMsg().getFrom())
-                
.containsOnly(fakeMailContext.getPostmaster().toInternetAddress());
+                
.containsOnly(fakeMailContext.getPostmaster().toInternetAddress().get());
             
assertThat(sentMail.getRecipients()).containsOnly(mail.getSender());
         }
 
@@ -332,7 +332,7 @@ public class DSNBounceTest {
             assertThat(sentMails).hasSize(1);
             SentMail sentMail = sentMails.get(0);
 
-            
assertThat(sentMail.getMsg().getFrom()).containsOnly(mail.getSender().toInternetAddress());
+            
assertThat(sentMail.getMsg().getFrom()).containsOnly(mail.getSender().toInternetAddress().get());
             
assertThat(sentMail.getRecipients()).containsOnly(mail.getSender());
         }
 
@@ -359,7 +359,7 @@ public class DSNBounceTest {
             assertThat(sentMails).hasSize(1);
             SentMail sentMail = sentMails.get(0);
 
-            
assertThat(sentMail.getMsg().getFrom()).containsOnly(mail.getSender().toInternetAddress());
+            
assertThat(sentMail.getMsg().getFrom()).containsOnly(mail.getSender().toInternetAddress().get());
             
assertThat(sentMail.getRecipients()).containsOnly(mail.getSender());
         }
 
@@ -387,7 +387,7 @@ public class DSNBounceTest {
             assertThat(sentMails).hasSize(1);
             SentMail sentMail = sentMails.get(0);
 
-            
assertThat(sentMail.getMsg().getFrom()).containsOnly(bounceSender.toInternetAddress());
+            
assertThat(sentMail.getMsg().getFrom()).containsOnly(bounceSender.toInternetAddress().get());
             
assertThat(sentMail.getRecipients()).containsOnly(mail.getSender());
         }
     }
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java
index 1b713af..8c50ca3 100644
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java
+++ 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java
@@ -100,7 +100,7 @@ public class NotifyPostmasterTest {
                 .build();
         notifyPostmaster.init(mailetConfig);
 
-        
assertThat(notifyPostmaster.getTo()).containsOnly(postmaster.toInternetAddress());
+        
assertThat(notifyPostmaster.getTo()).containsOnly(postmaster.toInternetAddress().get());
     }
 
     @Test
@@ -112,7 +112,7 @@ public class NotifyPostmasterTest {
                 .build();
         notifyPostmaster.init(mailetConfig);
 
-        
assertThat(notifyPostmaster.getTo()).containsOnly(postmaster.toInternetAddress());
+        
assertThat(notifyPostmaster.getTo()).containsOnly(postmaster.toInternetAddress().get());
     }
 
     @Test
@@ -124,7 +124,7 @@ public class NotifyPostmasterTest {
                 .build();
         notifyPostmaster.init(mailetConfig);
 
-        
assertThat(notifyPostmaster.getTo()).containsOnly(SpecialAddress.UNALTERED.toInternetAddress());
+        
assertThat(notifyPostmaster.getTo()).containsOnly(SpecialAddress.UNALTERED.toInternetAddress().get());
     }
 
     @Test
@@ -136,7 +136,7 @@ public class NotifyPostmasterTest {
                 .build();
         notifyPostmaster.init(mailetConfig);
 
-        
assertThat(notifyPostmaster.getTo()).containsOnly(postmaster.toInternetAddress());
+        
assertThat(notifyPostmaster.getTo()).containsOnly(postmaster.toInternetAddress().get());
     }
 
     @Test
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java
index 72fedfc..665777d 100644
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java
+++ 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java
@@ -98,7 +98,7 @@ public class NotifySenderTest {
                 .build();
         notifySender.init(mailetConfig);
 
-        
assertThat(notifySender.getTo()).containsOnly(SpecialAddress.SENDER.toInternetAddress());
+        
assertThat(notifySender.getTo()).containsOnly(SpecialAddress.SENDER.toInternetAddress().get());
     }
 
     @Test
@@ -110,7 +110,7 @@ public class NotifySenderTest {
                 .build();
         notifySender.init(mailetConfig);
 
-        
assertThat(notifySender.getTo()).containsOnly(SpecialAddress.SENDER.toInternetAddress());
+        
assertThat(notifySender.getTo()).containsOnly(SpecialAddress.SENDER.toInternetAddress().get());
     }
 
     @Test
@@ -122,7 +122,7 @@ public class NotifySenderTest {
                 .build();
         notifySender.init(mailetConfig);
 
-        
assertThat(notifySender.getTo()).containsOnly(SpecialAddress.UNALTERED.toInternetAddress());
+        
assertThat(notifySender.getTo()).containsOnly(SpecialAddress.UNALTERED.toInternetAddress().get());
     }
 
     @Test
@@ -134,7 +134,7 @@ public class NotifySenderTest {
                 .build();
         notifySender.init(mailetConfig);
 
-        
assertThat(notifySender.getTo()).containsOnly(SpecialAddress.FROM.toInternetAddress());
+        
assertThat(notifySender.getTo()).containsOnly(SpecialAddress.FROM.toInternetAddress().get());
     }
 
     @Test
@@ -146,7 +146,7 @@ public class NotifySenderTest {
                 .build();
         notifySender.init(mailetConfig);
 
-        
assertThat(notifySender.getTo()).containsOnly(SpecialAddress.SENDER.toInternetAddress());
+        
assertThat(notifySender.getTo()).containsOnly(SpecialAddress.SENDER.toInternetAddress().get());
     }
 
     @Test
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java
index 45fddd6..38a49ff 100644
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java
+++ 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.transport.mailets;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -216,7 +215,7 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        
assertThat(redirect.getTo()).containsOnly(postmaster.toInternetAddress());
+        
assertThat(redirect.getTo()).containsOnly(postmaster.toInternetAddress().get());
     }
 
     @Test
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/dlp/DlpTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/dlp/DlpTest.java
index 79d1668..0f3669b 100644
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/dlp/DlpTest.java
+++ 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/dlp/DlpTest.java
@@ -133,7 +133,7 @@ class DlpTest {
             .recipient(RECIPIENT1)
             .mimeMessage(MimeMessageBuilder
                 .mimeMessageBuilder()
-                .addFrom(ANY_AT_JAMES.toInternetAddress()))
+                .addFrom(ANY_AT_JAMES.toInternetAddress().get()))
             .build();
 
         assertThat(dlp.match(mail)).contains(RECIPIENT1);
@@ -170,7 +170,7 @@ class DlpTest {
             .recipient(RECIPIENT1)
             .mimeMessage(MimeMessageBuilder
                 .mimeMessageBuilder()
-                .addToRecipient(RECIPIENT2.toInternetAddress()))
+                .addToRecipient(RECIPIENT2.toInternetAddress().get()))
             .build();
 
         assertThat(dlp.match(mail)).contains(RECIPIENT1);
@@ -190,7 +190,7 @@ class DlpTest {
             .recipient(RECIPIENT1)
             .mimeMessage(MimeMessageBuilder
                 .mimeMessageBuilder()
-                .addCcRecipient(RECIPIENT2.toInternetAddress()))
+                .addCcRecipient(RECIPIENT2.toInternetAddress().get()))
             .build();
 
         assertThat(dlp.match(mail)).contains(RECIPIENT1);
@@ -210,7 +210,7 @@ class DlpTest {
             .recipient(RECIPIENT1)
             .mimeMessage(MimeMessageBuilder
                 .mimeMessageBuilder()
-                .addBccRecipient(RECIPIENT2.toInternetAddress()))
+                .addBccRecipient(RECIPIENT2.toInternetAddress().get()))
             .build();
 
         assertThat(dlp.match(mail)).contains(RECIPIENT1);
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/SpecialAddressesUtilsTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/SpecialAddressesUtilsTest.java
index cb8668c..d9c2b05 100644
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/SpecialAddressesUtilsTest.java
+++ 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/SpecialAddressesUtilsTest.java
@@ -294,7 +294,7 @@ public class SpecialAddressesUtilsTest {
                 .sender(sender)
                 .build();
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.SENDER.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.SENDER.toInternetAddress().get()));
 
         assertThat(addresses).containsOnly(sender);
     }
@@ -304,9 +304,9 @@ public class SpecialAddressesUtilsTest {
         MailAddress from = MailAddressFixture.ANY_AT_JAMES;
         MailAddress from2 = MailAddressFixture.OTHER_AT_JAMES;
         FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
-            .addFrom(from.toInternetAddress(), from2.toInternetAddress()));
+            .addFrom(from.toInternetAddress().get(), 
from2.toInternetAddress().get()));
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.FROM.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.FROM.toInternetAddress().get()));
 
         assertThat(addresses).containsOnly(from, from2);
     }
@@ -320,7 +320,7 @@ public class SpecialAddressesUtilsTest {
                 .sender(sender)
                 .build();
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.FROM.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.FROM.toInternetAddress().get()));
 
         assertThat(addresses).containsOnly(sender);
     }
@@ -331,7 +331,7 @@ public class SpecialAddressesUtilsTest {
                 .name("name")
                 .build();
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.SENDER.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.SENDER.toInternetAddress().get()));
 
         assertThat(addresses).isEmpty();
     }
@@ -340,7 +340,7 @@ public class SpecialAddressesUtilsTest {
     void 
replaceInternetAddressesShouldReturnEmptyWhenAddressesMatchReplyToAndReplyToIsNull()
 throws Exception {
         FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder());
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.REPLY_TO.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.REPLY_TO.toInternetAddress().get()));
 
         assertThat(addresses).isEmpty();
     }
@@ -354,7 +354,7 @@ public class SpecialAddressesUtilsTest {
         MailAddress expectedReplyTo = MailAddressFixture.ANY_AT_JAMES;
         MailAddress expectedReplyTo2 = MailAddressFixture.OTHER_AT_JAMES;
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.REPLY_TO.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.REPLY_TO.toInternetAddress().get()));
 
         assertThat(addresses).containsOnly(expectedReplyTo, expectedReplyTo2);
     }
@@ -368,7 +368,7 @@ public class SpecialAddressesUtilsTest {
                 .mimeMessage(MimeMessageBuilder.mimeMessageBuilder())
                 .build();
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.REPLY_TO.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.REPLY_TO.toInternetAddress().get()));
 
         assertThat(addresses).containsOnly(sender);
     }
@@ -381,7 +381,7 @@ public class SpecialAddressesUtilsTest {
                 .sender(sender)
                 .build();
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.REVERSE_PATH.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.REVERSE_PATH.toInternetAddress().get()));
 
         assertThat(addresses).containsOnly(sender);
     }
@@ -392,7 +392,7 @@ public class SpecialAddressesUtilsTest {
                 .name("name")
                 .build();
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.REVERSE_PATH.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.REVERSE_PATH.toInternetAddress().get()));
 
         assertThat(addresses).isEmpty();
     }
@@ -404,7 +404,7 @@ public class SpecialAddressesUtilsTest {
         FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
             .addToRecipient(to.asString(), to2.asString()));
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.RECIPIENTS.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.RECIPIENTS.toInternetAddress().get()));
 
         assertThat(addresses).containsOnly(to, to2);
     }
@@ -416,7 +416,7 @@ public class SpecialAddressesUtilsTest {
         FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
             .addToRecipient(to.asString(), to2.asString()));
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.TO.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.TO.toInternetAddress().get()));
 
         assertThat(addresses).containsOnly(to, to2);
     }
@@ -427,7 +427,7 @@ public class SpecialAddressesUtilsTest {
                 .name("name")
                 .build();
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.UNALTERED.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.UNALTERED.toInternetAddress().get()));
 
         assertThat(addresses).isEmpty();
     }
@@ -438,7 +438,7 @@ public class SpecialAddressesUtilsTest {
                 .name("name")
                 .build();
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.NULL.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.NULL.toInternetAddress().get()));
 
         assertThat(addresses).isEmpty();
     }
@@ -451,7 +451,7 @@ public class SpecialAddressesUtilsTest {
 
         MailAddress address = new MailAddress("user", "address.marker");
         MailAddress address2 = new MailAddress("user2", "address.marker");
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(address.toInternetAddress(), address2.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(address.toInternetAddress().get(), 
address2.toInternetAddress().get()));
 
         assertThat(addresses).containsOnly(address, address2);
     }
@@ -462,7 +462,7 @@ public class SpecialAddressesUtilsTest {
                 .name("name")
                 .build();
 
-        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.DELETE.toInternetAddress()));
+        List<MailAddress> addresses = testee.replaceInternetAddresses(mail, 
ImmutableList.of(SpecialAddress.DELETE.toInternetAddress().get()));
 
         MailAddress expected = new MailAddress("[email protected]");
         assertThat(addresses).containsOnly(expected);
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java
index c1d3454..52bf692 100644
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java
+++ 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java
@@ -61,7 +61,7 @@ class TosUtilsTest {
     @Test
     void getToShouldReturnEmptyWhenMailetToContainsOnlyUnaltered() throws 
Exception {
         when(mailet.getTo())
-            
.thenReturn(ImmutableList.of(SpecialAddress.UNALTERED.toInternetAddress()));
+            
.thenReturn(ImmutableList.of(SpecialAddress.UNALTERED.toInternetAddress().get()));
 
         FakeMail fakeMail = FakeMail.defaultFakeMail();
 
@@ -73,7 +73,7 @@ class TosUtilsTest {
     @Test
     void getToShouldReturnEmptyWhenMailetToContainsOnlyRecipients() throws 
Exception {
         when(mailet.getTo())
-            
.thenReturn(ImmutableList.of(SpecialAddress.RECIPIENTS.toInternetAddress()));
+            
.thenReturn(ImmutableList.of(SpecialAddress.RECIPIENTS.toInternetAddress().get()));
 
         FakeMail fakeMail = FakeMail.defaultFakeMail();
 
@@ -87,7 +87,7 @@ class TosUtilsTest {
         MailAddress mailAddress = new MailAddress("test", "james.org");
         MailAddress mailAddress2 = new MailAddress("test2", "james.org");
         when(mailet.getTo())
-            .thenReturn(ImmutableList.of(mailAddress.toInternetAddress(), 
mailAddress2.toInternetAddress()));
+            
.thenReturn(ImmutableList.of(mailAddress.toInternetAddress().get(), 
mailAddress2.toInternetAddress().get()));
 
         FakeMail fakeMail = FakeMail.defaultFakeMail();
 
@@ -100,7 +100,7 @@ class TosUtilsTest {
     @Test
     void 
getToShouldReturnAddressesFromOriginalMailWhenMailetToAreSpecialAddresses() 
throws Exception {
         when(mailet.getTo())
-            
.thenReturn(ImmutableList.of(SpecialAddress.FROM.toInternetAddress(), 
SpecialAddress.TO.toInternetAddress()));
+            
.thenReturn(ImmutableList.of(SpecialAddress.FROM.toInternetAddress().get(), 
SpecialAddress.TO.toInternetAddress().get()));
 
         MailAddress from = new MailAddress("from", "james.org");
         MailAddress toMailAddress = new MailAddress("to", "james.org");
diff --git 
a/server/mailet/mailets/src/test/scala/org/apache/james/transport/mailets/XOriginatingIpInNetworkSpec.scala
 
b/server/mailet/mailets/src/test/scala/org/apache/james/transport/mailets/XOriginatingIpInNetworkSpec.scala
index f7dd673..72db56a 100644
--- 
a/server/mailet/mailets/src/test/scala/org/apache/james/transport/mailets/XOriginatingIpInNetworkSpec.scala
+++ 
b/server/mailet/mailets/src/test/scala/org/apache/james/transport/mailets/XOriginatingIpInNetworkSpec.scala
@@ -59,7 +59,7 @@ class XOriginatingIpInNetworkSpec extends Specification with 
Matchers {
           .remoteAddr("10.0.0.1")
           .mimeMessage(
             MimeMessageBuilder.mimeMessageBuilder()
-              .addToRecipient(testRecipient.toInternetAddress)
+              .addToRecipient(testRecipient.toInternetAddress.get())
               .addHeader(X_ORIGINATING_IP,"192.168.200.1")
               .build())
           .build
@@ -77,7 +77,7 @@ class XOriginatingIpInNetworkSpec extends Specification with 
Matchers {
           .remoteAddr("10.0.0.1")
           .mimeMessage(
             MimeMessageBuilder.mimeMessageBuilder()
-              .addToRecipient(testRecipient.toInternetAddress)
+              .addToRecipient(testRecipient.toInternetAddress.get())
               .addHeader(X_ORIGINATING_IP,"[192.168.200.1]")
               .build())
           .build
@@ -95,7 +95,7 @@ class XOriginatingIpInNetworkSpec extends Specification with 
Matchers {
           .remoteAddr("10.0.0.1")
           .mimeMessage(
             MimeMessageBuilder.mimeMessageBuilder()
-              .addToRecipient(testRecipient.toInternetAddress)
+              .addToRecipient(testRecipient.toInternetAddress.get())
               .addHeader(X_ORIGINATING_IP,"10.0.0.2")
               .build())
           .build
@@ -113,7 +113,7 @@ class XOriginatingIpInNetworkSpec extends Specification 
with Matchers {
           .remoteAddr("10.0.0.1")
           .mimeMessage(
             MimeMessageBuilder.mimeMessageBuilder()
-              .addToRecipient(testRecipient.toInternetAddress)
+              .addToRecipient(testRecipient.toInternetAddress.get())
               .build())
           .build
 

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to