Author: norman
Date: Fri Oct 14 18:02:17 2011
New Revision: 1183448
URL: http://svn.apache.org/viewvc?rev=1183448&view=rev
Log:
IdleProcessor does now remove "HeartbeatHandler" once IDLE was complete. See
IMAP-348
Modified:
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
Modified:
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java?rev=1183448&r1=1183447&r2=1183448&view=diff
==============================================================================
---
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
(original)
+++
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
Fri Oct 14 18:02:17 2011
@@ -28,6 +28,7 @@ import java.util.Locale;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapSessionState;
@@ -86,6 +87,8 @@ public class IdleProcessor extends Abstr
idleListener = null;
}
+ final AtomicBoolean idleActive = new AtomicBoolean(true);
+
session.pushLineHandler(new ImapLineHandler() {
/**
@@ -118,6 +121,7 @@ public class IdleProcessor extends Abstr
okComplete(command, tag, responder);
}
+ idleActive.set(false);
}
});
@@ -128,7 +132,7 @@ public class IdleProcessor extends Abstr
public void run() {
// check if we need to cancel the Runnable
// See IMAP-275
- if (session.getState() != ImapSessionState.LOGOUT) {
+ if (session.getState() != ImapSessionState.LOGOUT &&
idleActive.get()) {
// Send a heartbeat to the client to make sure we
// reset the idle timeout. This is kind of the same
// workaround as dovecot use.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]