From 7d3ca7fb923e7ad5aeb6af80f87fe816286c9e13 Mon Sep 17 00:00:00 2001 From: Norman Maurer Date: Mon, 11 Apr 2016 11:52:32 +0200 Subject: [PATCH] Fix IndexOutOfBoundsException when FixedCompositeByteBuf is constructed with an empty array. Motivation: When FixedCompositeByteBuf was constructed with new ByteBuf[0] and IndexOutOfboundsException was thrown. Modifications: Fix constructor Result: No more exception --- .../main/java/io/netty/buffer/FixedCompositeByteBuf.java | 2 +- .../java/io/netty/buffer/FixedCompositeByteBufTest.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/buffer/src/main/java/io/netty/buffer/FixedCompositeByteBuf.java b/buffer/src/main/java/io/netty/buffer/FixedCompositeByteBuf.java index 268f75cb36..a129689553 100644 --- a/buffer/src/main/java/io/netty/buffer/FixedCompositeByteBuf.java +++ b/buffer/src/main/java/io/netty/buffer/FixedCompositeByteBuf.java @@ -49,7 +49,7 @@ final class FixedCompositeByteBuf extends AbstractReferenceCountedByteBuf { order = ByteOrder.BIG_ENDIAN; nioBufferCount = 1; capacity = 0; - direct = buffers[0].isDirect(); + direct = false; } else { ByteBuf b = buffers[0]; this.buffers = new Object[buffers.length]; diff --git a/buffer/src/test/java/io/netty/buffer/FixedCompositeByteBufTest.java b/buffer/src/test/java/io/netty/buffer/FixedCompositeByteBufTest.java index 66cab63b8f..2dafc91a14 100644 --- a/buffer/src/test/java/io/netty/buffer/FixedCompositeByteBufTest.java +++ b/buffer/src/test/java/io/netty/buffer/FixedCompositeByteBufTest.java @@ -314,4 +314,10 @@ public class FixedCompositeByteBufTest { assertEquals(1, byteBuffers[2].limit()); composite.release(); } + + @Test + public void testEmptyArray() { + ByteBuf buf = newBuffer(new ByteBuf[0]); + buf.release(); + } }