You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2017/01/18 07:52:00 UTC

[6/8] james-project git commit: MAILBOX-285 Allow message removal during CassandraMessageMapper :: setFlags

MAILBOX-285 Allow message removal during CassandraMessageMapper :: setFlags


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

Branch: refs/heads/master
Commit: 1bd6c7cd28fa6342db7572b3e4e978cd9e678a5b
Parents: 16bba83
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Jan 11 18:38:38 2017 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Jan 17 10:44:41 2017 +0700

----------------------------------------------------------------------
 .../james/mailbox/cassandra/mail/CassandraMessageMapper.java | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/1bd6c7cd/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
index 51f2528..e170a66 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
@@ -55,6 +55,8 @@ import org.apache.james.mailbox.store.mail.UidProvider;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.github.fge.lambdas.Throwing;
 import com.github.steveash.guavate.Guavate;
@@ -62,6 +64,7 @@ import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
 
 public class CassandraMessageMapper implements MessageMapper {
+    private static final Logger LOGGER = LoggerFactory.getLogger(CassandraMessageMapper.class);
 
     private final ModSeqProvider modSeqProvider;
     private final MailboxSession mailboxSession;
@@ -341,6 +344,9 @@ public class CassandraMessageMapper implements MessageMapper {
         } catch (MessageDeletedDuringFlagsUpdateException e) {
             mailboxSession.getLog().warn(e.getMessage());
             return Optional.empty();
+        } catch (MailboxDeleteDuringUpdateException e) {
+            LOGGER.info("Mailbox {} was deleted during flag update", mailbox.getMailboxId());
+            return Optional.empty();
         } catch (Exception e) {
             throw Throwables.propagate(e);
         }
@@ -351,7 +357,7 @@ public class CassandraMessageMapper implements MessageMapper {
         ComposedMessageIdWithMetaData composedMessageIdWithMetaData = imapUidDAO.retrieve((CassandraMessageId) messageId, Optional.of(cassandraId))
             .join()
             .findFirst()
-            .orElseThrow(MailboxDeleteDuringUpdate::new);
+            .orElseThrow(MailboxDeleteDuringUpdateException::new);
         return tryMessageFlagsUpdate(flagUpdateCalculator,
                 mailbox,
                 messageDAO.retrieveMessages(ImmutableList.of(composedMessageIdWithMetaData), FetchType.Metadata, Optional.empty()).join()


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