GH-9633: MailReceiver: also set flags into IntegrationMimeMessage
Fixes: #9633 Issue link: https://github.com/spring-projects/spring-integration/issues/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`**
This commit is contained in:
@@ -529,6 +529,9 @@ public abstract class AbstractMailReceiver extends IntegrationObjectSupport impl
|
||||
}
|
||||
|
||||
setMessageFlagsAndMaybeDeleteMessages(messages);
|
||||
if (filteredMessages.length > 0 && filteredMessages[0] instanceof IntegrationMimeMessage) {
|
||||
setMessageFlagsAndMaybeDeleteMessages(filteredMessages);
|
||||
}
|
||||
}
|
||||
|
||||
private void setMessageFlagsAndMaybeDeleteMessages(Message[] messages) throws MessagingException {
|
||||
|
||||
@@ -449,7 +449,7 @@ public class ImapMailReceiverTests {
|
||||
assertThat(msg1.getFlags().contains(Flag.SEEN)).isTrue();
|
||||
assertThat(msg2.getFlags().contains(Flag.SEEN)).isTrue();
|
||||
|
||||
verify(receiver, times(1)).deleteMessages(Mockito.any());
|
||||
verify(receiver, times(2)).deleteMessages(Mockito.any());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user