From fb6d301090e4799b277beb9dcadb50ac99708d90 Mon Sep 17 00:00:00 2001 From: Norman Maurer Date: Thu, 31 Oct 2013 06:13:27 +0100 Subject: [PATCH] [#1959] Proposed fix to correctly handle timeouts that overflow the ticks in the wheel --- src/main/java/org/jboss/netty/util/HashedWheelTimer.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jboss/netty/util/HashedWheelTimer.java b/src/main/java/org/jboss/netty/util/HashedWheelTimer.java index fc9a2243d5..a1d3514b70 100644 --- a/src/main/java/org/jboss/netty/util/HashedWheelTimer.java +++ b/src/main/java/org/jboss/netty/util/HashedWheelTimer.java @@ -506,9 +506,10 @@ public class HashedWheelTimer implements Timer { this.task = task; this.deadline = deadline; - final long ticks = Math.max(deadline / tickDuration, tick); // Ensure we don't schedule for past. + long calculated = deadline / tickDuration; + final long ticks = Math.max(calculated, tick); // Ensure we don't schedule for past. stopIndex = (int) (ticks & mask); - remainingRounds = ticks / wheel.length; + remainingRounds = (calculated - tick) / wheel.length; } public Timer getTimer() {