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 d09f6718b9f0ece3e50ddd80e12a05a4c59fdb31 Author: Benoit Tellier <[email protected]> AuthorDate: Sat May 8 09:48:30 2021 +0700 [REFACTORING] Avoid a blocking modseq call upon message flags update --- .../mailbox/cassandra/mail/CassandraMessageIdMapper.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java index 59ea987..e5db7eaf 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java @@ -49,7 +49,6 @@ import org.apache.james.mailbox.store.MailboxReactorUtils; import org.apache.james.mailbox.store.mail.MailboxMapper; import org.apache.james.mailbox.store.mail.MessageIdMapper; import org.apache.james.mailbox.store.mail.MessageMapper.FetchType; -import org.apache.james.mailbox.store.mail.ModSeqProvider; import org.apache.james.mailbox.store.mail.model.MailboxMessage; import org.apache.james.util.FunctionalUtils; import org.apache.james.util.ReactorUtils; @@ -80,14 +79,14 @@ public class CassandraMessageIdMapper implements MessageIdMapper { private final CassandraMessageDAO messageDAO; private final CassandraMessageDAOV3 messageDAOV3; private final CassandraIndexTableHandler indexTableHandler; - private final ModSeqProvider modSeqProvider; + private final CassandraModSeqProvider modSeqProvider; private final AttachmentLoader attachmentLoader; private final CassandraConfiguration cassandraConfiguration; public CassandraMessageIdMapper(MailboxMapper mailboxMapper, CassandraMailboxDAO mailboxDAO, CassandraAttachmentMapper attachmentMapper, CassandraMessageIdToImapUidDAO imapUidDAO, CassandraMessageIdDAO messageIdDAO, CassandraMessageDAO messageDAO, CassandraMessageDAOV3 messageDAOV3, CassandraIndexTableHandler indexTableHandler, - ModSeqProvider modSeqProvider, CassandraConfiguration cassandraConfiguration) { + CassandraModSeqProvider modSeqProvider, CassandraConfiguration cassandraConfiguration) { this.mailboxMapper = mailboxMapper; this.mailboxDAO = mailboxDAO; @@ -305,11 +304,11 @@ public class CassandraMessageIdMapper implements MessageIdMapper { if (identicalFlags(oldComposedId, newFlags)) { return Mono.just(Pair.of(oldComposedId.getFlags(), oldComposedId)); } else { - return Mono - .fromCallable(() -> new ComposedMessageIdWithMetaData( + return modSeqProvider.nextModSeq(cassandraId) + .map(modSeq -> new ComposedMessageIdWithMetaData( oldComposedId.getComposedMessageId(), newFlags, - modSeqProvider.nextModSeq(cassandraId))) + modSeq)) .flatMap(newComposedId -> updateFlags(oldComposedId, newComposedId)); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
