Skip to content

Commit 3f48d20

Browse files
committed
ImapMailReceiver: Check folder.isOpen before idle
Increase wait timeout for message in the ImapMailReceiverTests https://build.spring.io/browse/INT-MASTERSPRING40-556/
1 parent 355479f commit 3f48d20

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,9 @@ else if (!folder.getPermanentFlags().contains(Flags.Flag.RECENT)) {
179179
try {
180180
this.pingTask = this.scheduler.schedule(this.idleCanceler,
181181
new Date(System.currentTimeMillis() + this.cancelIdleInterval));
182-
imapFolder.idle();
182+
if (imapFolder.isOpen()) {
183+
imapFolder.idle();
184+
}
183185
}
184186
finally {
185187
imapFolder.removeMessageCountListener(this.messageCountListener);

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
@@ -250,7 +250,7 @@ public void testIdleWithServerGuts(ImapMailReceiver receiver, boolean mapped, bo
250250
assertThat(received.getPayload(), equalTo(TestMailServer.MailServer.MailHandler.MESSAGE + "\r\n"));
251251
}
252252
}
253-
assertNotNull(channel.receive(10000)); // new message after idle
253+
assertNotNull(channel.receive(20000)); // new message after idle
254254
assertNull(channel.receive(100)); // no new message after second and third idle
255255
verify(logger).debug("Canceling IDLE");
256256

0 commit comments

Comments
 (0)