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 bt...@apache.org on 2020/06/29 04:38:35 UTC

[james-project] 05/09: JAMES-3264: MAILBOX details are read 3 times upon indexing

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 bc6aecc10d42f8a21022eb4dbc5e5e65abf7e557
Author: duc91 <du...@gmail.com>
AuthorDate: Wed Jun 24 14:20:26 2020 +0700

    JAMES-3264: MAILBOX details are read 3 times upon indexing
---
 .../ElasticSearchListeningMessageSearchIndex.java  | 30 +++++++++++-----------
 ...asticSearchListeningMessageSearchIndexTest.java | 24 ++++++++---------
 .../lucene/search/LuceneMessageSearchIndex.java    | 19 ++++++--------
 .../LuceneMailboxMessageSearchIndexTest.java       |  8 +++---
 .../store/search/LazyMessageSearchIndex.java       |  8 +++---
 .../store/search/ListeningMessageSearchIndex.java  | 16 +++++-------
 .../mailbox/tools/indexer/ReIndexerPerformer.java  |  2 +-
 .../org/apache/james/FakeMessageSearchIndex.java   |  4 +--
 .../james/webadmin/routes/MailboxesRoutesTest.java |  8 +++---
 .../webadmin/routes/UserMailboxesRoutesTest.java   |  4 +--
 10 files changed, 58 insertions(+), 65 deletions(-)

diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
index ddb016e..64f4d89 100644
--- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
+++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.james.mailbox.elasticsearch.events;
 
+import static com.github.steveash.guavate.Guavate.toImmutableList;
 import static org.apache.james.mailbox.elasticsearch.json.JsonMessageConstants.IS_ANSWERED;
 import static org.apache.james.mailbox.elasticsearch.json.JsonMessageConstants.IS_DELETED;
 import static org.apache.james.mailbox.elasticsearch.json.JsonMessageConstants.IS_DRAFT;
@@ -69,7 +70,6 @@ import org.slf4j.LoggerFactory;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.github.fge.lambdas.Throwing;
-import com.github.steveash.guavate.Guavate;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 
@@ -154,7 +154,7 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe
             message.getUid());
 
         RoutingKey from = routingKeyFactory.from(mailbox.getMailboxId());
-        DocumentId id = indexIdFor(mailbox, message.getUid());
+        DocumentId id = indexIdFor(mailbox.getMailboxId(), message.getUid());
 
         return Mono.fromCallable(() -> generateIndexedJson(mailbox, message, session))
             .flatMap(jsonContent -> elasticSearchIndexer.index(id, jsonContent, from))
@@ -176,12 +176,12 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe
     }
 
     @Override
-    public Mono<Void> delete(MailboxSession session, Mailbox mailbox, Collection<MessageUid> expungedUids) {
+    public Mono<Void> delete(MailboxSession session, MailboxId mailboxId, Collection<MessageUid> expungedUids) {
         return elasticSearchIndexer
             .delete(expungedUids.stream()
-                .map(uid ->  indexIdFor(mailbox, uid))
-                .collect(Guavate.toImmutableList()),
-                routingKeyFactory.from(mailbox.getMailboxId()))
+                .map(uid ->  indexIdFor(mailboxId, uid))
+                .collect(toImmutableList()),
+                routingKeyFactory.from(mailboxId))
             .then();
     }
 
@@ -196,27 +196,27 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe
     }
 
     @Override
-    public Mono<Void> update(MailboxSession session, Mailbox mailbox, List<UpdatedFlags> updatedFlagsList) {
-        RoutingKey routingKey = routingKeyFactory.from(mailbox.getMailboxId());
+    public Mono<Void> update(MailboxSession session, MailboxId mailboxId, List<UpdatedFlags> updatedFlagsList) {
+        RoutingKey routingKey = routingKeyFactory.from(mailboxId);
 
         return Flux.fromIterable(updatedFlagsList)
             .map(Throwing.<UpdatedFlags, UpdatedRepresentation>function(
-                updatedFlags -> createUpdatedDocumentPartFromUpdatedFlags(mailbox, updatedFlags))
+                updatedFlags -> createUpdatedDocumentPartFromUpdatedFlags(mailboxId, updatedFlags))
                 .sneakyThrow())
-            .collect(Guavate.toImmutableList())
+            .collect(toImmutableList())
             .flatMap(updates -> elasticSearchIndexer.update(updates, routingKey))
             .then();
     }
 
-    private UpdatedRepresentation createUpdatedDocumentPartFromUpdatedFlags(Mailbox mailbox, UpdatedFlags updatedFlags) throws JsonProcessingException {
+    private UpdatedRepresentation createUpdatedDocumentPartFromUpdatedFlags(MailboxId mailboxId, UpdatedFlags updatedFlags) throws JsonProcessingException {
         return new UpdatedRepresentation(
-            indexIdFor(mailbox, updatedFlags.getUid()),
+            indexIdFor(mailboxId, updatedFlags.getUid()),
             messageToElasticSearchJson
                 .getUpdatedJsonMessagePart(updatedFlags.getNewFlags(), updatedFlags.getModSeq()));
     }
 
-    private DocumentId indexIdFor(Mailbox mailbox, MessageUid uid) {
-        return DocumentId.fromString(String.join(ID_SEPARATOR, mailbox.getMailboxId().serialize(), String.valueOf(uid.asLong())));
+    private DocumentId indexIdFor(MailboxId mailboxId, MessageUid uid) {
+        return DocumentId.fromString(String.join(ID_SEPARATOR, mailboxId.serialize(), String.valueOf(uid.asLong())));
     }
 
     private void logIfNoMessageId(SearchResult searchResult) {
@@ -229,7 +229,7 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe
     public Mono<Flags> retrieveIndexedFlags(Mailbox mailbox, MessageUid uid) {
         RoutingKey routingKey = routingKeyFactory.from(mailbox.getMailboxId());
 
-        return elasticSearchIndexer.get(indexIdFor(mailbox, uid), routingKey)
+        return elasticSearchIndexer.get(indexIdFor(mailbox.getMailboxId(), uid), routingKey)
             .filter(GetResponse::isExists)
             .map(GetResponse::getSourceAsMap)
             .map(this::extractFlags)
diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
index c9ea4e6..1908052 100644
--- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
+++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
@@ -275,7 +275,7 @@ class ElasticSearchListeningMessageSearchIndexTest {
         testee.add(session, mailbox, MESSAGE_1).block();
         elasticSearch.awaitForElasticSearch();
 
-        testee.delete(session, mailbox, Lists.newArrayList(MESSAGE_UID_1)).block();
+        testee.delete(session, mailbox.getMailboxId(), Lists.newArrayList(MESSAGE_UID_1)).block();
         elasticSearch.awaitForElasticSearch();
 
         SearchQuery query = SearchQuery.of(SearchQuery.all());
@@ -290,7 +290,7 @@ class ElasticSearchListeningMessageSearchIndexTest {
 
         elasticSearch.awaitForElasticSearch();
 
-        testee.delete(session, mailbox, Lists.newArrayList(MESSAGE_UID_1)).block();
+        testee.delete(session, mailbox.getMailboxId(), Lists.newArrayList(MESSAGE_UID_1)).block();
         elasticSearch.awaitForElasticSearch();
 
         SearchQuery query = SearchQuery.of(SearchQuery.all());
@@ -305,7 +305,7 @@ class ElasticSearchListeningMessageSearchIndexTest {
 
         elasticSearch.awaitForElasticSearch();
 
-        testee.delete(session, mailbox, Lists.newArrayList(MESSAGE_UID_1, MESSAGE_UID_2)).block();
+        testee.delete(session, mailbox.getMailboxId(), Lists.newArrayList(MESSAGE_UID_1, MESSAGE_UID_2)).block();
         elasticSearch.awaitForElasticSearch();
 
         SearchQuery query = SearchQuery.of(SearchQuery.all());
@@ -318,8 +318,8 @@ class ElasticSearchListeningMessageSearchIndexTest {
         testee.add(session, mailbox, MESSAGE_1).block();
         elasticSearch.awaitForElasticSearch();
 
-        testee.delete(session, mailbox, Lists.newArrayList(MESSAGE_UID_1)).block();
-        testee.delete(session, mailbox, Lists.newArrayList(MESSAGE_UID_1)).block();
+        testee.delete(session, mailbox.getMailboxId(), Lists.newArrayList(MESSAGE_UID_1)).block();
+        testee.delete(session, mailbox.getMailboxId(), Lists.newArrayList(MESSAGE_UID_1)).block();
         elasticSearch.awaitForElasticSearch();
 
         SearchQuery query = SearchQuery.of(SearchQuery.all());
@@ -329,7 +329,7 @@ class ElasticSearchListeningMessageSearchIndexTest {
 
     @Test
     void deleteShouldNotThrowOnUnknownMessageUid() {
-        assertThatCode(() -> testee.delete(session, mailbox, Lists.newArrayList(MESSAGE_UID_1)).block())
+        assertThatCode(() -> testee.delete(session, mailbox.getMailboxId(), Lists.newArrayList(MESSAGE_UID_1)).block())
             .doesNotThrowAnyException();
     }
 
@@ -338,7 +338,7 @@ class ElasticSearchListeningMessageSearchIndexTest {
         elasticSearch.getDockerElasticSearch().pause();
         Thread.sleep(Duration.FIVE_SECONDS.getValueInMS()); // Docker pause is asynchronous and we found no way to poll for it
 
-        assertThatThrownBy(() -> testee.delete(session, mailbox, Lists.newArrayList(MESSAGE_UID_1)).block())
+        assertThatThrownBy(() -> testee.delete(session, mailbox.getMailboxId(), Lists.newArrayList(MESSAGE_UID_1)).block())
             .hasCauseInstanceOf(IOException.class);
 
         elasticSearch.getDockerElasticSearch().unpause();
@@ -357,7 +357,7 @@ class ElasticSearchListeningMessageSearchIndexTest {
             .newFlags(newFlags)
             .build();
 
-        testee.update(session, mailbox, Lists.newArrayList(updatedFlags)).block();
+        testee.update(session, mailbox.getMailboxId(), Lists.newArrayList(updatedFlags)).block();
         elasticSearch.awaitForElasticSearch();
 
         SearchQuery query = SearchQuery.of(SearchQuery.flagIsSet(Flags.Flag.ANSWERED));
@@ -378,7 +378,7 @@ class ElasticSearchListeningMessageSearchIndexTest {
             .newFlags(newFlags)
             .build();
 
-        testee.update(session, mailbox, Lists.newArrayList(updatedFlags)).block();
+        testee.update(session, mailbox.getMailboxId(), Lists.newArrayList(updatedFlags)).block();
         elasticSearch.awaitForElasticSearch();
 
         SearchQuery query = SearchQuery.of(SearchQuery.flagIsSet(Flags.Flag.ANSWERED));
@@ -399,8 +399,8 @@ class ElasticSearchListeningMessageSearchIndexTest {
             .newFlags(newFlags)
             .build();
 
-        testee.update(session, mailbox, Lists.newArrayList(updatedFlags)).block();
-        testee.update(session, mailbox, Lists.newArrayList(updatedFlags)).block();
+        testee.update(session, mailbox.getMailboxId(), Lists.newArrayList(updatedFlags)).block();
+        testee.update(session, mailbox.getMailboxId(), Lists.newArrayList(updatedFlags)).block();
         elasticSearch.awaitForElasticSearch();
 
         SearchQuery query = SearchQuery.of(SearchQuery.flagIsSet(Flags.Flag.ANSWERED));
@@ -421,7 +421,7 @@ class ElasticSearchListeningMessageSearchIndexTest {
             .newFlags(newFlags)
             .build();
 
-        assertThatThrownBy(() -> testee.update(session, mailbox, Lists.newArrayList(updatedFlags)).block())
+        assertThatThrownBy(() -> testee.update(session, mailbox.getMailboxId(), Lists.newArrayList(updatedFlags)).block())
             .hasCauseInstanceOf(IOException.class);
 
         elasticSearch.getDockerElasticSearch().unpause();
diff --git a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
index 9a8e480..c9ddec0 100644
--- a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
+++ b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
@@ -1189,18 +1189,18 @@ public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex {
     }
 
     @Override
-    public Mono<Void> update(MailboxSession session, Mailbox mailbox, List<UpdatedFlags> updatedFlagsList) {
+    public Mono<Void> update(MailboxSession session, MailboxId mailboxId, List<UpdatedFlags> updatedFlagsList) {
         return Mono.fromRunnable(Throwing.runnable(() -> {
             for (UpdatedFlags updatedFlags : updatedFlagsList) {
-                update(mailbox, updatedFlags.getUid(), updatedFlags.getNewFlags());
+                update(mailboxId, updatedFlags.getUid(), updatedFlags.getNewFlags());
             }
         }));
     }
 
-    private void update(Mailbox mailbox, MessageUid uid, Flags f) throws IOException {
+    private void update(MailboxId mailboxId, MessageUid uid, Flags f) throws IOException {
         try (IndexSearcher searcher = new IndexSearcher(IndexReader.open(writer, true))) {
             BooleanQuery query = new BooleanQuery();
-            query.add(new TermQuery(new Term(MAILBOX_ID_FIELD, mailbox.getMailboxId().serialize())), BooleanClause.Occur.MUST);
+            query.add(new TermQuery(new Term(MAILBOX_ID_FIELD, mailboxId.serialize())), BooleanClause.Occur.MUST);
             query.add(createQuery(MessageRange.one(uid)), BooleanClause.Occur.MUST);
             query.add(new PrefixQuery(new Term(FLAGS_FIELD, "")), BooleanClause.Occur.MUST);
 
@@ -1269,13 +1269,10 @@ public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex {
     }
 
     @Override
-    public Mono<Void> delete(MailboxSession session, Mailbox mailbox, Collection<MessageUid> expungedUids) {
-        return Mono.fromRunnable(Throwing.runnable(() -> {
-            Collection<MessageRange> messageRanges = MessageRange.toRanges(expungedUids);
-            for (MessageRange messageRange : messageRanges) {
-                delete(mailbox.getMailboxId(), messageRange);
-            }
-        }));
+    public Mono<Void> delete(MailboxSession session, MailboxId mailboxId, Collection<MessageUid> expungedUids) {
+        return Mono.fromRunnable(Throwing.runnable(() -> MessageRange.toRanges(expungedUids)
+            .forEach(Throwing.<MessageRange>consumer(messageRange -> delete(mailboxId, messageRange))
+                .sneakyThrow())));
     }
 
     @Override
diff --git a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
index a0ec57c..3f913f0 100644
--- a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
+++ b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
@@ -631,7 +631,7 @@ class LuceneMailboxMessageSearchIndexTest {
             .newFlags(newFlags)
             .build();
 
-        index.update(session, mailbox, Lists.newArrayList(updatedFlags)).block();
+        index.update(session, mailbox.getMailboxId(), Lists.newArrayList(updatedFlags)).block();
 
         SearchQuery query = SearchQuery.of(SearchQuery.flagIsSet(Flags.Flag.DRAFT));
         assertThat(index.search(session, mailbox, query))
@@ -648,7 +648,7 @@ class LuceneMailboxMessageSearchIndexTest {
             .newFlags(newFlags)
             .build();
 
-        index.update(session, mailbox, Lists.newArrayList(updatedFlags)).block();
+        index.update(session, mailbox.getMailboxId(), Lists.newArrayList(updatedFlags)).block();
 
         SearchQuery query = SearchQuery.of(SearchQuery.flagIsSet(Flags.Flag.DRAFT));
         assertThat(index.search(session, mailbox, query))
@@ -665,8 +665,8 @@ class LuceneMailboxMessageSearchIndexTest {
             .newFlags(newFlags)
             .build();
 
-        index.update(session, mailbox, Lists.newArrayList(updatedFlags)).block();
-        index.update(session, mailbox, Lists.newArrayList(updatedFlags)).block();
+        index.update(session, mailbox.getMailboxId(), Lists.newArrayList(updatedFlags)).block();
+        index.update(session, mailbox.getMailboxId(), Lists.newArrayList(updatedFlags)).block();
 
         SearchQuery query = SearchQuery.of(SearchQuery.flagIsSet(Flags.Flag.DRAFT));
         assertThat(index.search(session, mailbox, query))
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java
index e889b2b..7e44fea 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java
@@ -95,8 +95,8 @@ public class LazyMessageSearchIndex extends ListeningMessageSearchIndex {
     }
 
     @Override
-    public Mono<Void> delete(MailboxSession session, Mailbox mailbox, Collection<MessageUid> expungedUids) {
-        return index.delete(session, mailbox, expungedUids);
+    public Mono<Void> delete(MailboxSession session, MailboxId mailboxId, Collection<MessageUid> expungedUids) {
+        return index.delete(session, mailboxId, expungedUids);
     }
 
     @Override
@@ -139,8 +139,8 @@ public class LazyMessageSearchIndex extends ListeningMessageSearchIndex {
     }
 
     @Override
-    public Mono<Void> update(MailboxSession session, Mailbox mailbox, List<UpdatedFlags> updatedFlagsList) {
-        return index.update(session, mailbox, updatedFlagsList);
+    public Mono<Void> update(MailboxSession session, MailboxId mailboxId, List<UpdatedFlags> updatedFlagsList) {
+        return index.update(session, mailboxId, updatedFlagsList);
     }
     
 
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
index 7f9db4c..5f06c3d 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
@@ -82,15 +82,11 @@ public abstract class ListeningMessageSearchIndex implements MessageSearchIndex,
         } else if (event instanceof Expunged) {
             Expunged expunged = (Expunged) event;
 
-            return factory.getMailboxMapper(session)
-                .findMailboxById(mailboxId)
-                .flatMap(mailbox -> delete(session, mailbox, expunged.getUids()));
+            return delete(session, mailboxId, expunged.getUids());
         } else if (event instanceof FlagsUpdated) {
             FlagsUpdated flagsUpdated = (FlagsUpdated) event;
 
-            return factory.getMailboxMapper(session)
-                .findMailboxById(mailboxId)
-                .flatMap(mailbox -> update(session, mailbox, flagsUpdated.getUpdatedFlags()));
+            return update(session, mailboxId, flagsUpdated.getUpdatedFlags());
         } else if (event instanceof MailboxDeletion) {
             return deleteAll(session, mailboxId);
         } else {
@@ -123,10 +119,10 @@ public abstract class ListeningMessageSearchIndex implements MessageSearchIndex,
      * Delete the concerned UIDs for the given {@link Mailbox} from the index
      *
      * @param session      The mailbox session performing the expunge
-     * @param mailbox      mailbox on which the expunge was performed
+     * @param mailboxId    mailboxId on which the expunge was performed
      * @param expungedUids UIDS to be deleted
      */
-    public abstract Mono<Void> delete(MailboxSession session, Mailbox mailbox, Collection<MessageUid> expungedUids);
+    public abstract Mono<Void> delete(MailboxSession session, MailboxId mailboxId, Collection<MessageUid> expungedUids);
 
     /**
      * Delete the messages contained in the given {@link Mailbox} from the index
@@ -140,10 +136,10 @@ public abstract class ListeningMessageSearchIndex implements MessageSearchIndex,
      * Update the messages concerned by the updated flags list for the given {@link Mailbox}
      *
      * @param session          session that performed the update
-     * @param mailbox          mailbox containing the updated messages
+     * @param mailboxId        mailboxId on which the expunge was performed
      * @param updatedFlagsList list of flags that were updated
      */
-    public abstract Mono<Void> update(MailboxSession session, Mailbox mailbox, List<UpdatedFlags> updatedFlagsList);
+    public abstract Mono<Void> update(MailboxSession session, MailboxId mailboxId, List<UpdatedFlags> updatedFlagsList);
 
     /**
      * Retrieves flags of an indexed message
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
index b854d67..e9ca9f3 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
@@ -332,7 +332,7 @@ public class ReIndexerPerformer {
     }
 
     private Mono<Either<Failure, Result>> correct(ReIndexingEntry entry, MailboxMessage message) {
-        return messageSearchIndex.delete(entry.getMailboxSession(), entry.getMailbox(), ImmutableList.of(message.getUid()))
+        return messageSearchIndex.delete(entry.getMailboxSession(), entry.getMailbox().getMailboxId(), ImmutableList.of(message.getUid()))
             .then(index(entry));
     }
 
diff --git a/server/container/guice/memory-guice/src/main/java/org/apache/james/FakeMessageSearchIndex.java b/server/container/guice/memory-guice/src/main/java/org/apache/james/FakeMessageSearchIndex.java
index 3c7beef..7dbe612 100644
--- a/server/container/guice/memory-guice/src/main/java/org/apache/james/FakeMessageSearchIndex.java
+++ b/server/container/guice/memory-guice/src/main/java/org/apache/james/FakeMessageSearchIndex.java
@@ -60,7 +60,7 @@ public class FakeMessageSearchIndex extends ListeningMessageSearchIndex {
     }
 
     @Override
-    public Mono<Void> delete(MailboxSession session, Mailbox mailbox, Collection<MessageUid> expungedUids) {
+    public Mono<Void> delete(MailboxSession session, MailboxId mailboxId, Collection<MessageUid> expungedUids) {
         throw new NotImplementedException("not implemented");
     }
 
@@ -70,7 +70,7 @@ public class FakeMessageSearchIndex extends ListeningMessageSearchIndex {
     }
 
     @Override
-    public Mono<Void> update(MailboxSession session, Mailbox mailbox, List<UpdatedFlags> updatedFlagsList) {
+    public Mono<Void> update(MailboxSession session, MailboxId mailboxId, List<UpdatedFlags> updatedFlagsList) {
         throw new NotImplementedException("not implemented");
     }
 
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
index 244331a..f84804a 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
@@ -369,7 +369,7 @@ class MailboxesRoutesTest {
                     .build();
 
                 // We update on the searchIndex level to try to create inconsistencies
-                searchIndex.update(systemSession, mailbox, ImmutableList.of(updatedFlags)).block();
+                searchIndex.update(systemSession, mailbox.getMailboxId(), ImmutableList.of(updatedFlags)).block();
 
                 String taskId = with()
                     .post("/mailboxes?task=reIndex&mode=fixOutdated")
@@ -416,7 +416,7 @@ class MailboxesRoutesTest {
                     .build();
 
                 // We update on the searchIndex level to try to create inconsistencies
-                searchIndex.update(systemSession, mailbox, ImmutableList.of(updatedFlags)).block();
+                searchIndex.update(systemSession, mailbox.getMailboxId(), ImmutableList.of(updatedFlags)).block();
 
                 String taskId = with()
                     .post("/mailboxes?task=reIndex&mode=fixOutdated")
@@ -741,7 +741,7 @@ class MailboxesRoutesTest {
                     .build();
 
                 // We update on the searchIndex level to try to create inconsistencies
-                searchIndex.update(systemSession, mailbox, ImmutableList.of(updatedFlags)).block();
+                searchIndex.update(systemSession, mailbox.getMailboxId(), ImmutableList.of(updatedFlags)).block();
 
                 String taskId = with()
                     .queryParam("task", "reIndex")
@@ -790,7 +790,7 @@ class MailboxesRoutesTest {
                     .build();
 
                 // We update on the searchIndex level to try to create inconsistencies
-                searchIndex.update(systemSession, mailbox, ImmutableList.of(updatedFlags)).block();
+                searchIndex.update(systemSession, mailbox.getMailboxId(), ImmutableList.of(updatedFlags)).block();
 
                 String taskId = with()
                     .queryParam("task", "reIndex")
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
index 3e18b00..768913f 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
@@ -1389,7 +1389,7 @@ class UserMailboxesRoutesTest {
                     .build();
 
                 // We update on the searchIndex level to try to create inconsistencies
-                searchIndex.update(systemSession, mailbox, ImmutableList.of(updatedFlags)).block();
+                searchIndex.update(systemSession, mailbox.getMailboxId(), ImmutableList.of(updatedFlags)).block();
 
                 String taskId = with()
                     .queryParam("task", "reIndex")
@@ -1438,7 +1438,7 @@ class UserMailboxesRoutesTest {
                     .build();
 
                 // We update on the searchIndex level to try to create inconsistencies
-                searchIndex.update(systemSession, mailbox, ImmutableList.of(updatedFlags)).block();
+                searchIndex.update(systemSession, mailbox.getMailboxId(), ImmutableList.of(updatedFlags)).block();
 
                 String taskId = with()
                     .queryParam("task", "reIndex")


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