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;