From 61bbb04852211e0200b669e260a1696c39d58935 Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Sun, 10 Feb 2013 00:46:30 +0900 Subject: [PATCH] Fix a bug in AbstractEmbeddedChannel where flush failure is not recorded --- .../io/netty/channel/embedded/AbstractEmbeddedChannel.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/transport/src/main/java/io/netty/channel/embedded/AbstractEmbeddedChannel.java b/transport/src/main/java/io/netty/channel/embedded/AbstractEmbeddedChannel.java index 81bd9eb084..bdc09e2571 100755 --- a/transport/src/main/java/io/netty/channel/embedded/AbstractEmbeddedChannel.java +++ b/transport/src/main/java/io/netty/channel/embedded/AbstractEmbeddedChannel.java @@ -23,6 +23,7 @@ import io.netty.channel.AbstractChannel; import io.netty.channel.Channel; import io.netty.channel.ChannelConfig; import io.netty.channel.ChannelException; +import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundByteHandler; @@ -302,7 +303,11 @@ public abstract class AbstractEmbeddedChannel extends AbstractChannel { */ public boolean writeOutbound(Object data) { ensureOpen(); - write(data); + ChannelFuture future = write(data); + assert future.isDone(); + if (future.cause() != null) { + recordException(future.cause()); + } runPendingTasks(); checkException(); return hasReadableOutboundBuffer();