Author: msahyoun
Date: Thu Apr 2 10:12:58 2026
New Revision: 1932735
Log:
PDFBOX-6185: HeapByteBuffers don't need unmapping
Modified:
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/IOUtils.java
Modified: pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/IOUtils.java
==============================================================================
--- pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/IOUtils.java Thu Apr
2 10:11:16 2026 (r1932734)
+++ pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/IOUtils.java Thu Apr
2 10:12:58 2026 (r1932735)
@@ -193,7 +193,9 @@ public final class IOUtils
{
try
{
- if (buf != null)
+ // HeapByteBuffers don't need to be unmapped, and unmapping only
works for direct buffers,
+ // so we can skip it in that case.
+ if (buf != null && buf.isDirect())
{
UNMAPPER.ifPresent(u -> u.accept(buf));
}
@@ -286,6 +288,7 @@ public final class IOUtils
return (ByteBuffer buffer) -> {
if (!buffer.isDirect())
{
+ // defensive check, should not happen as we only call this
method with direct buffers
throw new IllegalArgumentException("unmapping only works with
direct buffers");
}
if (!unmappableBufferClass.isInstance(buffer))