This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
The following commit(s) were added to refs/heads/master by this push: new 8e32db459b [FIX] DeletedMessage size could be zero 8e32db459b is described below commit 8e32db459b4f900a41131a716739c47ebd5945f2 Author: Quan Tran <hqt...@linagora.com> AuthorDate: Tue Aug 27 15:01:49 2024 +0700 [FIX] DeletedMessage size could be zero DeletedMessage' size was indeed zero in one of our customer envs. ``` java.lang.IllegalArgumentException: 'size' is required to be a strictly positive number at com.google.common.base.Preconditions.checkArgument(Preconditions.java:143) at org.apache.james.vault.DeletedMessage.<init>(DeletedMessage.java:175) at org.apache.james.vault.DeletedMessage$Builder$FinalStage.build(DeletedMessage.java:150) at org.apache.james.vault.metadata.DeletedMessageVaultDeletionCallback.lambda$forMessage$2(DeletedMessageVaultDeletionCallback.java:89) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:132) at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:231) at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:231) at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) at reactor.core.publisher.MonoPublishOn$PublishOnSubscriber.run(MonoPublishOn.java:181) at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) at java.base/java.util.concurrent.FutureTask.run(Unknown Source) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) ``` ``` admin@cqlsh:xxxx> select fullcontentoctets from messageidtable WHERE mailboxid = 33ffdde0-4e88-11ef-a191-57867848886b; fullcontentoctets ------------------- 0 93449 89585 143591 ``` --- .../src/main/java/org/apache/james/vault/DeletedMessage.java | 2 +- .../test/java/org/apache/james/vault/DeletedMessageTest.java | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessage.java b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessage.java index a8845370d2..1beeba6ae2 100644 --- a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessage.java +++ b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessage.java @@ -172,7 +172,7 @@ public class DeletedMessage { public DeletedMessage(MessageId messageId, List<MailboxId> originMailboxes, Username owner, ZonedDateTime deliveryDate, ZonedDateTime deletionDate, MaybeSender sender, List<MailAddress> recipients, Optional<String> subject, boolean hasAttachment, long size) { - Preconditions.checkArgument(size > 0, "'size' is required to be a strictly positive number"); + Preconditions.checkArgument(size >= 0, "'size' is required to be a non negative number"); this.messageId = messageId; this.originMailboxes = originMailboxes; diff --git a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageTest.java b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageTest.java index 60e872f2e9..f6423718ca 100644 --- a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageTest.java +++ b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageTest.java @@ -34,6 +34,7 @@ import static org.apache.mailet.base.MailAddressFixture.RECIPIENT1; import static org.apache.mailet.base.MailAddressFixture.RECIPIENT2; import static org.apache.mailet.base.MailAddressFixture.SENDER; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatCode; import static org.assertj.core.api.Assertions.assertThatThrownBy; import org.apache.james.core.MaybeSender; @@ -73,16 +74,15 @@ class DeletedMessageTest { } @Test - void buildShouldThrowWhenPassingZeroSize() { - assertThatThrownBy(() -> SIZE_STAGE.size(0L).build()) - .isInstanceOf(IllegalArgumentException.class) - .hasMessage("'size' is required to be a strictly positive number"); + void buildShouldNotThrowWhenPassingZeroSize() { + assertThatCode(() -> SIZE_STAGE.size(0L).build()) + .doesNotThrowAnyException(); } @Test void buildShouldThrowWhenPassingNegativeSize() { assertThatThrownBy(() -> SIZE_STAGE.size(-1L).build()) .isInstanceOf(IllegalArgumentException.class) - .hasMessage("'size' is required to be a strictly positive number"); + .hasMessage("'size' is required to be a non negative number"); } } \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org For additional commands, e-mail: notifications-h...@james.apache.org