diff --git a/buffer/src/main/java/io/netty/buffer/PooledDirectByteBuf.java b/buffer/src/main/java/io/netty/buffer/PooledDirectByteBuf.java index c1475b3a91..e45864b04e 100644 --- a/buffer/src/main/java/io/netty/buffer/PooledDirectByteBuf.java +++ b/buffer/src/main/java/io/netty/buffer/PooledDirectByteBuf.java @@ -274,7 +274,7 @@ final class PooledDirectByteBuf extends PooledByteBuf { @Override public ByteBuf setBytes(int index, ByteBuffer src) { - checkIndex(index); + checkIndex(index, src.remaining()); ByteBuffer tmpBuf = internalNioBuffer(); if (src == tmpBuf) { src = src.duplicate(); diff --git a/buffer/src/main/java/io/netty/buffer/PooledUnsafeDirectByteBuf.java b/buffer/src/main/java/io/netty/buffer/PooledUnsafeDirectByteBuf.java index 6149100acf..4d15509021 100644 --- a/buffer/src/main/java/io/netty/buffer/PooledUnsafeDirectByteBuf.java +++ b/buffer/src/main/java/io/netty/buffer/PooledUnsafeDirectByteBuf.java @@ -278,7 +278,7 @@ final class PooledUnsafeDirectByteBuf extends PooledByteBuf { @Override public ByteBuf setBytes(int index, ByteBuffer src) { - checkIndex(index); + checkIndex(index, src.remaining()); ByteBuffer tmpBuf = internalNioBuffer(); if (src == tmpBuf) { src = src.duplicate(); diff --git a/buffer/src/test/java/io/netty/buffer/AbstractByteBufTest.java b/buffer/src/test/java/io/netty/buffer/AbstractByteBufTest.java index 60c31c748e..932bb17697 100644 --- a/buffer/src/test/java/io/netty/buffer/AbstractByteBufTest.java +++ b/buffer/src/test/java/io/netty/buffer/AbstractByteBufTest.java @@ -16,6 +16,7 @@ package io.netty.buffer; import io.netty.util.CharsetUtil; +import io.netty.util.internal.EmptyArrays; import org.junit.After; import org.junit.Assert; import org.junit.Assume; @@ -163,6 +164,8 @@ public abstract class AbstractByteBufTest { buffer.writerIndex(0); buffer.readerIndex(0); buffer.writerIndex(CAPACITY); + + buffer.writeBytes(ByteBuffer.wrap(EmptyArrays.EMPTY_BYTES)); } @Test(expected = IndexOutOfBoundsException.class)