diff --git a/transport/src/main/java/io/netty/channel/socket/aio/AioSocketChannel.java b/transport/src/main/java/io/netty/channel/socket/aio/AioSocketChannel.java index 5a726cf1cd..eafdce0883 100755 --- a/transport/src/main/java/io/netty/channel/socket/aio/AioSocketChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/aio/AioSocketChannel.java @@ -192,6 +192,7 @@ public class AioSocketChannel extends AbstractAioChannel implements SocketChanne final int maxCapacity = byteBuf.maxCapacity(); if (capacity == maxCapacity) { + byteBuf.discardReadBytes(); return; } diff --git a/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioByteChannel.java b/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioByteChannel.java index d51cc6ce7a..7f8b9af4da 100755 --- a/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioByteChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/nio/AbstractNioByteChannel.java @@ -141,6 +141,10 @@ abstract class AbstractNioByteChannel extends AbstractNioChannel { final int maxCapacity = byteBuf.maxCapacity(); if (capacity == maxCapacity) { + if (byteBuf.readerIndex() != 0) { + byteBuf.discardReadBytes(); + return 0; + } return 2; }