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))

Reply via email to