Browse Source

On AckManager.scheduleTimeout, potentially calls onTimeout twice #103

master
Nikita 12 years ago
parent
commit
0d4c750dd2
  1. 8
      src/main/java/com/corundumstudio/socketio/ack/AckManager.java

8
src/main/java/com/corundumstudio/socketio/ack/AckManager.java

@ -147,7 +147,7 @@ public class AckManager implements Disconnectable {
return index; return index;
} }
private void scheduleTimeout(final long index, final UUID sessionId, final AckCallback callback) {
private void scheduleTimeout(final long index, final UUID sessionId, AckCallback callback) {
if (callback.getTimeout() == -1) { if (callback.getTimeout() == -1) {
return; return;
} }
@ -155,8 +155,10 @@ public class AckManager implements Disconnectable {
scheduler.schedule(key, new Runnable() { scheduler.schedule(key, new Runnable() {
@Override @Override
public void run() { public void run() {
removeCallback(sessionId, index);
callback.onTimeout();
AckCallback cb = removeCallback(sessionId, index);
if (cb != null) {
cb.onTimeout();
}
} }
}, callback.getTimeout(), TimeUnit.SECONDS); }, callback.getTimeout(), TimeUnit.SECONDS);
} }

Loading…
Cancel
Save