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
(cherry picked from commit 1d85d6b43c)
This commit is contained in:
committed by
Spring Builds
parent
6eee926e7e
commit
22161b628d
@@ -516,6 +516,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 {
|
||||
|
||||
@@ -452,7 +452,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