From d861a364c9715a902705c9dbe4af2df9cc0bfa0a Mon Sep 17 00:00:00 2001 From: jasonjoo2010 Date: Tue, 16 Oct 2018 17:44:28 +0800 Subject: [PATCH] Fix bug for body reading in HttpServerHandler of sentinel-transport-netty-http (#185) - Do a manual copying from unpooled direct buffer. --- .../sentinel/transport/command/netty/HttpServerHandler.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/csp/sentinel/transport/command/netty/HttpServerHandler.java b/sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/csp/sentinel/transport/command/netty/HttpServerHandler.java index e88343b0..31a70fc9 100755 --- a/sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/csp/sentinel/transport/command/netty/HttpServerHandler.java +++ b/sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/csp/sentinel/transport/command/netty/HttpServerHandler.java @@ -178,7 +178,9 @@ public class HttpServerHandler extends SimpleChannelInboundHandler { if (request.content().readableBytes() <= 0) { serverRequest.setBody(null); } else { - serverRequest.setBody(request.content().array()); + byte[] body = new byte[request.content().readableBytes()]; + request.content().getBytes(0, body); + serverRequest.setBody(body); } return serverRequest; }