From 529d904d2902ecd619933db570a4dcc1f5a482be Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Fri, 12 Jul 2013 20:01:38 +0900 Subject: [PATCH] Fix a bug where ChannelOutboundBuffer.addFlush() is called multiple times --- .../src/main/java/io/netty/channel/AbstractChannel.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/transport/src/main/java/io/netty/channel/AbstractChannel.java b/transport/src/main/java/io/netty/channel/AbstractChannel.java index 0fb34db4a5..eb99cef373 100644 --- a/transport/src/main/java/io/netty/channel/AbstractChannel.java +++ b/transport/src/main/java/io/netty/channel/AbstractChannel.java @@ -595,7 +595,10 @@ public abstract class AbstractChannel extends DefaultAttributeMap implements Cha @Override public void flush() { outboundBuffer.addFlush(); + flush0(); + } + private void flush0() { if (!inFlushNow) { // Avoid re-entrance // Flush immediately only when there's no pending flush. // If there's a pending flush operation, event loop will call flushNow() later, @@ -609,7 +612,7 @@ public abstract class AbstractChannel extends DefaultAttributeMap implements Cha eventLoop().execute(new Runnable() { @Override public void run() { - flush(); + flush0(); } }); }