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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]