CXF-5707 Fixed ByteBuf leak issue
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/2f3446fe Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/2f3446fe Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/2f3446fe Branch: refs/heads/master Commit: 2f3446fe69f51156b324e081d5f2cb2ba5275069 Parents: ab8818b Author: Willem Jiang <[email protected]> Authored: Wed Apr 23 23:12:00 2014 +0800 Committer: Willem Jiang <[email protected]> Committed: Wed Apr 23 23:13:08 2014 +0800 ---------------------------------------------------------------------- .../netty/server/servlet/NettyServletInputStream.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/2f3446fe/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/servlet/NettyServletInputStream.java ---------------------------------------------------------------------- diff --git a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/servlet/NettyServletInputStream.java b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/servlet/NettyServletInputStream.java index 2f34f50..aca389a 100644 --- a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/servlet/NettyServletInputStream.java +++ b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/servlet/NettyServletInputStream.java @@ -23,6 +23,7 @@ import java.io.IOException; import javax.servlet.ServletInputStream; +import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufInputStream; import io.netty.handler.codec.http.HttpContent; @@ -30,9 +31,11 @@ import io.netty.handler.codec.http.HttpContent; public class NettyServletInputStream extends ServletInputStream { private final ByteBufInputStream in; + private final ByteBuf byteBuf; public NettyServletInputStream(HttpContent httpContent) { - this.in = new ByteBufInputStream(httpContent.content()); + this.byteBuf = httpContent.content(); + this.in = new ByteBufInputStream(byteBuf); } @Override @@ -50,4 +53,9 @@ public class NettyServletInputStream extends ServletInputStream { return this.in.read(buf, offset, len); } + public void close() throws IOException { + // we need to release the ByteBufInputStream + byteBuf.release(); + } + }
