JAMES-2352 Domain of a MailAddress can not be null

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

Branch: refs/heads/master
Commit: 2aefc065eeb31fbdff93cbd223d93862459d2ef1
Parents: 3306f18
Author: benwa <btell...@linagora.com>
Authored: Wed Mar 21 10:55:05 2018 +0700
Committer: benwa <btell...@linagora.com>
Committed: Tue Mar 27 15:14:05 2018 +0700

----------------------------------------------------------------------
 .../mailets/managesieve/ManageSieveMailet.java  |  6 ++---
 .../managesieve/ManageSieveMailetTestCase.java  | 27 ++++++++++++++++++++
 2 files changed, 29 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/2aefc065/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
index cd9bd4e..ba2f23f 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
@@ -29,7 +29,6 @@ import java.util.Scanner;
 import javax.inject.Inject;
 import javax.mail.MessagingException;
 
-import org.apache.james.core.Domain;
 import org.apache.james.managesieve.api.Session;
 import org.apache.james.managesieve.api.SieveParser;
 import org.apache.james.managesieve.core.CoreProcessor;
@@ -123,7 +122,7 @@ public class ManageSieveMailet extends GenericMailet 
implements MessageToCoreToM
     @Override
     public void service(Mail mail) throws MessagingException {
         // Sanity checks
-        if (mail.getSender() == null) {
+        if (mail.getSender() == null || mail.getSender().isNullSender()) {
             LOGGER.error("Sender is null");
             return;
         }
@@ -139,8 +138,7 @@ public class ManageSieveMailet extends GenericMailet 
implements MessageToCoreToM
         } else {
             session.setState(Session.State.UNAUTHENTICATED);
         }
-        Domain domain = mail.getSender().getDomain() == null ? 
Domain.LOCALHOST : mail.getSender().getDomain();
-        session.setUser(mail.getSender().getLocalPart() + '@' + domain.name());
+        session.setUser(mail.getSender().asString());
         getMailetContext().sendMail(mail.getRecipients().iterator().next(), 
Lists.newArrayList(mail.getSender()),transcoder.execute(session, 
mail.getMessage()));
         mail.setState(Mail.GHOST);
         

http://git-wip-us.apache.org/repos/asf/james-project/blob/2aefc065/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
index f0eb7c3..0ca9a75 100644
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
+++ 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
@@ -459,6 +459,33 @@ public class ManageSieveMailetTestCase {
         ensureResponse("Re: SETACTIVE", "NO \"Missing argument: script 
name\"");
     }
 
+    @Test
+    public final void manageSieveMailetShouldIgnoreNullSender() throws 
Exception {
+        MimeMessage message = prepareMimeMessage("SETACTIVE");
+        Mail mail = FakeMail.builder()
+            .mimeMessage(message)
+            .sender(MailAddress.nullSender())
+            .recipient(SIEVE_LOCALHOST)
+            .build();
+
+        mailet.service(mail);
+
+        assertThat(fakeMailContext.getSentMails()).isEmpty();
+    }
+
+    @Test
+    public final void manageSieveMailetShouldIgnoreMailWhenNoSender() throws 
Exception {
+        MimeMessage message = prepareMimeMessage("SETACTIVE");
+        Mail mail = FakeMail.builder()
+            .mimeMessage(message)
+            .recipient(SIEVE_LOCALHOST)
+            .build();
+
+        mailet.service(mail);
+
+        assertThat(fakeMailContext.getSentMails()).isEmpty();
+    }
+
     private void initializeMailet() throws MessagingException {
         mailet = new ManageSieveMailet();
         mailet.setSieveParser(sieveParser);


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