Skip to content

Commit 1d85d6b

Browse files
committed
GH-9633: MailReceiver: also set flags into IntegrationMimeMessage
Fixes: #9633 Issue link: #9633 The message flags of the received messages are outdated and don't contain the changes of `AbstractMailReceiver#setMessageFlags`, because the flags are only applied to the original message and not the copy (`AbstractMailReceiver.IntegrationMimeMessage`). * Call `setMessageFlagsAndMaybeDeleteMessages()` for `IntegrationMimeMessage` copies as well **Auto-cherry-pick to `6.3.x` & `6.2.x`**
1 parent 846d655 commit 1d85d6b

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

spring-integration-mail/src/main/java/org/springframework/integration/mail/AbstractMailReceiver.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,9 @@ private void postProcessFilteredMessages(Message[] filteredMessages) throws Mess
529529
}
530530

531531
setMessageFlagsAndMaybeDeleteMessages(messages);
532+
if (filteredMessages.length > 0 && filteredMessages[0] instanceof IntegrationMimeMessage) {
533+
setMessageFlagsAndMaybeDeleteMessages(filteredMessages);
534+
}
532535
}
533536

534537
private void setMessageFlagsAndMaybeDeleteMessages(Message[] messages) throws MessagingException {

spring-integration-mail/src/test/java/org/springframework/integration/mail/ImapMailReceiverTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,7 @@ public void receiveMarkAsReadAndDelete() throws Exception {
449449
assertThat(msg1.getFlags().contains(Flag.SEEN)).isTrue();
450450
assertThat(msg2.getFlags().contains(Flag.SEEN)).isTrue();
451451

452-
verify(receiver, times(1)).deleteMessages(Mockito.any());
452+
verify(receiver, times(2)).deleteMessages(Mockito.any());
453453
}
454454

455455
@Test

0 commit comments

Comments
 (0)