Skip to content

Commit 22161b6

Browse files
artembilanspring-builds
authored andcommitted
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 (cherry picked from commit 1d85d6b)
1 parent 6eee926 commit 22161b6

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
@@ -516,6 +516,9 @@ private void postProcessFilteredMessages(Message[] filteredMessages) throws Mess
516516
}
517517

518518
setMessageFlagsAndMaybeDeleteMessages(messages);
519+
if (filteredMessages.length > 0 && filteredMessages[0] instanceof IntegrationMimeMessage) {
520+
setMessageFlagsAndMaybeDeleteMessages(filteredMessages);
521+
}
519522
}
520523

521524
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
@@ -452,7 +452,7 @@ public void receiveMarkAsReadAndDelete() throws Exception {
452452
assertThat(msg1.getFlags().contains(Flag.SEEN)).isTrue();
453453
assertThat(msg2.getFlags().contains(Flag.SEEN)).isTrue();
454454

455-
verify(receiver, times(1)).deleteMessages(Mockito.any());
455+
verify(receiver, times(2)).deleteMessages(Mockito.any());
456456
}
457457

458458
@Test

0 commit comments

Comments
 (0)