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 12c8627bb9524e64b77d4d21757e37550a2ef9a0 Author: LanKhuat <[email protected]> AuthorDate: Wed May 20 14:47:53 2020 +0700 JAMES-3184 Fix unstable tests causes by concurrently message processing --- .../cassandra/mail/task/SolveMessageInconsistenciesService.java | 5 +---- .../mail/task/SolveMessageInconsistenciesServiceTest.java | 7 ++++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesService.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesService.java index 4f3b0b5..e25d6f3 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesService.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesService.java @@ -474,11 +474,8 @@ public class SolveMessageInconsistenciesService { } private Flux<Task.Result> fixInconsistenciesInMessageId(Context context, RunningOptions runningOptions) { - return messageIdDAO.retrieveAllMessages() + return throttle(messageIdDAO.retrieveAllMessages(), runningOptions) .doOnNext(any -> context.incrementMessageIdEntries()) - .windowTimeout(runningOptions.getMessagesPerSecond(), Duration.ofSeconds(1)) - .zipWith(Flux.interval(Duration.ofSeconds(1))) - .flatMap(Tuple2::getT1) .flatMap(this::detectInconsistencyInMessageId) .flatMap(inconsistency -> inconsistency.fix(context, messageIdToImapUidDAO, messageIdDAO)); } diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesServiceTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesServiceTest.java index 086d105..49ab568 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesServiceTest.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesServiceTest.java @@ -49,6 +49,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; +import org.testcontainers.shaded.com.google.common.collect.ImmutableList; import reactor.core.publisher.Mono; import reactor.core.scheduler.Schedulers; @@ -313,9 +314,9 @@ public class SolveMessageInconsistenciesServiceTest { cassandra.getConf() .registerScenario(fail() .times(1) - .whenQueryStartsWith("INSERT INTO messageIdTable (mailboxId,uid,modSeq,messageId,flagAnswered,flagDeleted,flagDraft,flagFlagged,flagRecent,flagSeen,flagUser,userFlags) VALUES (:mailboxId,:uid,:modSeq,d2bee791-7e63-11ea-883c-95b84008f979,:flagAnswered,:flagDeleted,:flagDraft,:flagFlagged,:flagRecent,:flagSeen,:flagUser,:userFlags)")); + .whenQueryStartsWith("INSERT INTO messageIdTable (mailboxId,uid,modSeq,messageId,flagAnswered,flagDeleted,flagDraft,flagFlagged,flagRecent,flagSeen,flagUser,userFlags) VALUES (:mailboxId,:uid,:modSeq,:messageId,:flagAnswered,:flagDeleted,:flagDraft,:flagFlagged,:flagRecent,:flagSeen,:flagUser,:userFlags)")); - testee.fixMessageInconsistencies(new Context(), RunningOptions.DEFAULT).block(); + testee.fixMessageInconsistencies(new Context(), new RunningOptions(1)).block(); SoftAssertions.assertSoftly(softly -> { softly.assertThat(imapUidDAO.retrieve(MESSAGE_ID_2, Optional.of(MAILBOX_ID)).collectList().block()) @@ -490,7 +491,7 @@ public class SolveMessageInconsistenciesServiceTest { .times(1) .whenQueryStartsWith("DELETE FROM messageIdTable WHERE mailboxId=:mailboxId AND uid=:uid;")); - testee.fixMessageInconsistencies(new Context(), RunningOptions.DEFAULT).block(); + testee.fixMessageInconsistencies(new Context(), new RunningOptions(1)).block(); SoftAssertions.assertSoftly(softly -> { softly.assertThat(imapUidDAO.retrieveAllMessages().collectList().block()) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
