diff --git a/src/main/java/org/jboss/netty/handler/execution/OrderedMemoryAwareThreadPoolExecutor.java b/src/main/java/org/jboss/netty/handler/execution/OrderedMemoryAwareThreadPoolExecutor.java index e457fab856..49782774d0 100644 --- a/src/main/java/org/jboss/netty/handler/execution/OrderedMemoryAwareThreadPoolExecutor.java +++ b/src/main/java/org/jboss/netty/handler/execution/OrderedMemoryAwareThreadPoolExecutor.java @@ -30,10 +30,8 @@ import java.util.concurrent.TimeUnit; import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelEvent; -import org.jboss.netty.channel.ChannelState; -import org.jboss.netty.channel.ChannelStateEvent; import org.jboss.netty.util.ObjectSizeEstimator; -import org.jboss.netty.util.internal.ConcurrentIdentityHashMap; +import org.jboss.netty.util.internal.ConcurrentIdentityWeakKeyHashMap; /** * A {@link MemoryAwareThreadPoolExecutor} which maintains the @@ -71,7 +69,7 @@ public class OrderedMemoryAwareThreadPoolExecutor extends MemoryAwareThreadPoolExecutor { private final ConcurrentMap childExecutors = - new ConcurrentIdentityHashMap(); + new ConcurrentIdentityWeakKeyHashMap(); /** * Creates a new instance. @@ -169,15 +167,6 @@ public class OrderedMemoryAwareThreadPoolExecutor extends executor = oldExecutor; } } - - // Remove the entry when the channel closes. - if (e instanceof ChannelStateEvent) { - ChannelStateEvent se = (ChannelStateEvent) e; - if (se.getState() == ChannelState.OPEN && - !channel.isOpen()) { - childExecutors.remove(channel); - } - } return executor; }