[prev in list] [next in list] [prev in thread] [next in thread] 

List:       james-dev
Subject:    [3/3] james-project git commit: JAMES-2033 RemoteDelivery should not raise error on JMAP when messag
From:       btellier () apache ! org
Date:       2017-05-30 8:33:21
Message-ID: 7ad89a1406d048c8a03fd35ca05e3e43 () git ! apache ! org
[Download RAW message or body]

JAMES-2033 RemoteDelivery should not raise error on JMAP when message is moved out of \
OUTBOX


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

Branch: refs/heads/master
Commit: 9505324c1530cd5dd16c842120789ddb5175d632
Parents: 986059d
Author: quynhn <qnguyen@linagora.com>
Authored: Mon May 29 16:49:15 2017 +0700
Committer: benwa <btellier@linagora.com>
Committed: Tue May 30 15:32:27 2017 +0700

----------------------------------------------------------------------
 .../james/jmap/send/PostDequeueDecorator.java   |  2 ++
 .../jmap/send/PostDequeueDecoratorTest.java     | 26 +++++++++++++++++---
 2 files changed, 25 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/9505324c/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
                
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java \
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
 index 41add56..5631c83 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
                
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
 @@ -80,6 +80,8 @@ public class PostDequeueDecorator extends MailQueueItemDecorator {
                     MailboxSession mailboxSession = \
mailboxManager.createSystemSession(username, LOG);  moveFromOutboxToSent(messageId, \
mailboxSession);  getMail().setAttribute(IS_DELIVERED, IS_DELIVERED);
+                } catch (MailShouldBeInOutboxException e) {
+                    LOG.info("Message does not exist on Outbox anymore, it could \
have already been sent {}", e);  } catch (MailboxException e) {
                     throw new MailQueueException(e.getMessage(), e);
                 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/9505324c/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
                
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java \
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
 index 568aac9..beb0210 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
                
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
 @@ -34,7 +34,6 @@ import javax.mail.Flags;
 
 import org.apache.james.jmap.DefaultMailboxes;
 import org.apache.james.jmap.exceptions.MailboxRoleNotFoundException;
-import org.apache.james.jmap.send.exception.MailShouldBeInOutboxException;
 import org.apache.james.jmap.utils.SystemMailboxesProviderImpl;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
@@ -42,6 +41,7 @@ import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.acl.GroupMembershipResolver;
+import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.InMemoryMessageId;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
 import org.apache.james.mailbox.model.ComposedMessageId;
@@ -52,6 +52,7 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.MessageResult;
 import org.apache.james.mailbox.model.MessageResultIterator;
+import org.apache.james.queue.api.MailQueue;
 import org.apache.james.queue.api.MailQueue.MailQueueItem;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.test.FakeMail;
@@ -100,8 +101,8 @@ public class PostDequeueDecoratorTest {
         verify(mockedMailQueueItem).done(true);
     }
     
-    @Test(expected=MailShouldBeInOutboxException.class)
-    public void doneShouldThrowWhenMessageIsNotInOutbox() throws Exception {
+    @Test
+    public void doneShouldNotThrowWhenMessageIsNotInOutbox() throws Exception {
         MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, \
                LOGGER);
         mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
         mailboxManager.createMailbox(SENT_MAILBOX_PATH, mailboxSession);
@@ -266,4 +267,23 @@ public class PostDequeueDecoratorTest {
 
         verifyNoMoreInteractions(messageIdManager);
     }
+
+    @Test(expected = MailQueue.MailQueueException.class)
+    public void doneShouldThrowWhenMailboxException() throws Exception {
+        MessageIdManager messageIdManager = mock(MessageIdManager.class);
+        testee = new PostDequeueDecorator(mockedMailQueueItem, mailboxManager, new \
InMemoryMessageId.Factory(), +                messageIdManager, new \
SystemMailboxesProviderImpl(mailboxManager)); +
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, \
LOGGER); +        mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
+        mailboxManager.createMailbox(SENT_MAILBOX_PATH, mailboxSession).get();
+        MessageManager messageManager = \
mailboxManager.getMailbox(OUTBOX_MAILBOX_PATH, mailboxSession); +        \
ComposedMessageId messageId = messageManager.appendMessage(new \
ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), new Date(), \
mailboxSession, false, new Flags()); +        \
mail.setAttribute(MailMetadata.MAIL_METADATA_MESSAGE_ID_ATTRIBUTE, \
messageId.getMessageId().serialize()); +        \
mail.setAttribute(MailMetadata.MAIL_METADATA_USERNAME_ATTRIBUTE, USERNAME); +
+        when(messageIdManager.getMessages(eq(ImmutableList.of(messageId.getMessageId())), \
eq(FetchGroupImpl.MINIMAL), \
any(MailboxSession.class))).thenThrow(MailboxException.class); +
+        testee.done(true);
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic