diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/BufferSplitter.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/BufferSplitter.java index fe812cf710..4b6910166f 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/BufferSplitter.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/BufferSplitter.java @@ -28,7 +28,7 @@ public class BufferSplitter { public static void split(ActiveMQBuffer buffer, int splitSize, Consumer target) { byte[] bytesBuffer = new byte[buffer.readableBytes()]; - buffer.readBytes(bytesBuffer); + buffer.getBytes(buffer.readerIndex(), bytesBuffer); split(bytesBuffer, splitSize, target); } diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/persistence/impl/journal/BufferSplitterTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/persistence/impl/journal/BufferSplitterTest.java index 44d7c001f1..af670483a4 100644 --- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/persistence/impl/journal/BufferSplitterTest.java +++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/persistence/impl/journal/BufferSplitterTest.java @@ -33,11 +33,17 @@ public class BufferSplitterTest { ActiveMQBuffer outputBuffer = ActiveMQBuffers.fixedBuffer(1000 * DataConstants.SIZE_INT); + final int rdx = buffer.readerIndex(); + final int readableBytes = buffer.readableBytes(); + BufferSplitter.split(buffer, 77, (c) -> { Assert.assertTrue(c.getEncodeSize() <= 77); c.encode(outputBuffer); }); + Assert.assertEquals(rdx, buffer.readerIndex()); + Assert.assertEquals(readableBytes, buffer.readableBytes()); + outputBuffer.resetReaderIndex(); buffer.resetReaderIndex();