Frankly, I'm not sure, but while I was trying to track down the resource leak this was the first thing I changed; just calling the `ReferenceCountUtil.release` directly on the request instead of just the content. *Apparently*, the LEAKs occurred far less likely after that change and I almost pulled out the champagne...

My reasoning was that a HttpMessage, besides being a ByteBufHolder, might perhaps have other resources than just the content buffer which would then still be leaked if releasing just a part of the message.

As another thought, first determining whether the message has some content and calling release on that doesn't buy you much considering the implementation of `ReferenceCountUtil.release` in Netty:

```java
public static boolean release(Object msg) {
  if (msg instanceof ReferenceCounted) {
    return ((ReferenceCounted) msg).release();
  }
  return false;
}
```