[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