From 54d34f0c00e0ba6b81b05e82d782f050b165cff6 Mon Sep 17 00:00:00 2001 From: Marcus Linke Date: Mon, 2 May 2016 21:34:59 +0200 Subject: [PATCH] Fix issue #560 --- .../netty/handler/FramedResponseStreamHandler.java | 2 +- .../github/dockerjava/netty/handler/HttpResponseHandler.java | 5 ++++- .../netty/handler/JsonResponseCallbackHandler.java | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/dockerjava/netty/handler/FramedResponseStreamHandler.java b/src/main/java/com/github/dockerjava/netty/handler/FramedResponseStreamHandler.java index f360ca756..534894a99 100644 --- a/src/main/java/com/github/dockerjava/netty/handler/FramedResponseStreamHandler.java +++ b/src/main/java/com/github/dockerjava/netty/handler/FramedResponseStreamHandler.java @@ -45,7 +45,7 @@ public FramedResponseStreamHandler(ResultCallback resultCallback) { @Override protected void channelRead0(ChannelHandlerContext ctx, ByteBuf msg) throws Exception { - rawBuffer.writeBytes(msg.copy(), 0, msg.readableBytes()); + rawBuffer.writeBytes(msg, 0, msg.readableBytes()); Frame frame = null; diff --git a/src/main/java/com/github/dockerjava/netty/handler/HttpResponseHandler.java b/src/main/java/com/github/dockerjava/netty/handler/HttpResponseHandler.java index 571fa9be5..9986e10e9 100644 --- a/src/main/java/com/github/dockerjava/netty/handler/HttpResponseHandler.java +++ b/src/main/java/com/github/dockerjava/netty/handler/HttpResponseHandler.java @@ -120,6 +120,9 @@ public void close() { } private String getBodyAsMessage(ByteBuf body) { - return body.readBytes(body.readableBytes()).toString(Charset.forName("UTF-8")); + String result = body.readBytes(body.readableBytes()).toString(Charset.forName("UTF-8")); + body.discardReadBytes(); + body.release(); + return result; } } diff --git a/src/main/java/com/github/dockerjava/netty/handler/JsonResponseCallbackHandler.java b/src/main/java/com/github/dockerjava/netty/handler/JsonResponseCallbackHandler.java index b5f76ab73..db20d6216 100644 --- a/src/main/java/com/github/dockerjava/netty/handler/JsonResponseCallbackHandler.java +++ b/src/main/java/com/github/dockerjava/netty/handler/JsonResponseCallbackHandler.java @@ -30,6 +30,7 @@ public JsonResponseCallbackHandler(TypeReference typeReference, ResultCallbac protected void channelRead0(ChannelHandlerContext ctx, ByteBuf msg) throws Exception { byte[] buffer = new byte[msg.readableBytes()]; msg.readBytes(buffer); + msg.discardReadBytes(); T object = null;