This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch backport/25330-to-camel-4.18.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit 37672f1335994a8a4b47b6180851d5123eedfdfe Author: Omar Atie <[email protected]> AuthorDate: Tue Aug 4 13:43:52 2026 -0700 CAMEL-24355: Use absolute ByteBuffer.get for simpler conversion Switch to buffer.get(0, bArray) after review feedback and add read-only buffer coverage. Drop unnecessary public modifier from test class. Co-authored-by: Claude Opus 4.6 <[email protected]> Co-authored-by: Cursor <[email protected]> --- .../main/java/org/apache/camel/converter/NIOConverter.java | 6 +----- .../java/org/apache/camel/converter/NIOConverterTest.java | 14 +++++++++++++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/core/camel-base/src/main/java/org/apache/camel/converter/NIOConverter.java b/core/camel-base/src/main/java/org/apache/camel/converter/NIOConverter.java index 8e08c9eb4bde..55eb58eef253 100644 --- a/core/camel-base/src/main/java/org/apache/camel/converter/NIOConverter.java +++ b/core/camel-base/src/main/java/org/apache/camel/converter/NIOConverter.java @@ -50,11 +50,7 @@ public final class NIOConverter { @Converter(order = 1) public static byte[] toByteArray(ByteBuffer buffer) { byte[] bArray = new byte[buffer.limit()]; - if (bArray.length > 0) { - ByteBuffer copy = buffer.duplicate(); - copy.rewind(); - copy.get(bArray); - } + buffer.get(0, bArray); return bArray; } diff --git a/core/camel-core/src/test/java/org/apache/camel/converter/NIOConverterTest.java b/core/camel-core/src/test/java/org/apache/camel/converter/NIOConverterTest.java index 8afe34a0cbdf..a8bf1349b9de 100644 --- a/core/camel-core/src/test/java/org/apache/camel/converter/NIOConverterTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/converter/NIOConverterTest.java @@ -29,7 +29,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class NIOConverterTest extends ContextTestSupport { +class NIOConverterTest extends ContextTestSupport { private static final String TEST_FILE_NAME = "hello" + UUID.randomUUID() + ".txt"; @Test @@ -91,6 +91,18 @@ public class NIOConverterTest extends ContextTestSupport { assertThat(out).isEmpty(); } + @Test + void testToByteArrayReadOnlyFullyConsumedBuffer() { + ByteBuffer bb = ByteBuffer.wrap("Hello".getBytes()).asReadOnlyBuffer(); + while (bb.hasRemaining()) { + bb.get(); + } + + byte[] out = NIOConverter.toByteArray(bb); + + assertThat(out).containsExactly("Hello".getBytes()); + } + @Test void testToStringFullyConsumedBuffer() throws Exception { ByteBuffer bb = ByteBuffer.wrap("Hello".getBytes());
