From 81612f8e9bc02bdb1bac6f1d6bd4d221668bb559 Mon Sep 17 00:00:00 2001 From: Norman Maurer Date: Mon, 22 Jul 2013 10:59:06 +0200 Subject: [PATCH] [#1624] Fix resource leak when writing to a closed / not-open channel --- transport/src/main/java/io/netty/channel/AbstractChannel.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/transport/src/main/java/io/netty/channel/AbstractChannel.java b/transport/src/main/java/io/netty/channel/AbstractChannel.java index c51cd072b4..39b09f11e3 100644 --- a/transport/src/main/java/io/netty/channel/AbstractChannel.java +++ b/transport/src/main/java/io/netty/channel/AbstractChannel.java @@ -19,6 +19,7 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufAllocator; import io.netty.buffer.ByteBufHolder; import io.netty.util.DefaultAttributeMap; +import io.netty.util.ReferenceCountUtil; import io.netty.util.internal.EmptyArrays; import io.netty.util.internal.PlatformDependent; import io.netty.util.internal.ThreadLocalRandom; @@ -620,6 +621,8 @@ public abstract class AbstractChannel extends DefaultAttributeMap implements Cha } else { promise.tryFailure(CLOSED_CHANNEL_EXCEPTION); } + // release message now to prevent resource-leak + ReferenceCountUtil.release(msg); } else { outboundBuffer.addMessage(msg, promise); }