Author: lehmi
Date: Mon Oct 13 06:07:21 2025
New Revision: 1929105
Log:
PDFBOX-5660: skip close operations for already closed resources as proposed by
Valery Bokov, closes #287
Modified:
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBufferedFile.java
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadMemoryMappedFile.java
Modified:
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java
==============================================================================
---
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java
Mon Oct 13 06:03:19 2025 (r1929104)
+++
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java
Mon Oct 13 06:07:21 2025 (r1929105)
@@ -150,10 +150,13 @@ public class RandomAccessReadBuffer impl
@Override
public void close() throws IOException
{
- rarbCopies.values().forEach(IOUtils::closeQuietly);
- rarbCopies.clear();
- currentBuffer = null;
- bufferList.clear();
+ if (!isClosed())
+ {
+ rarbCopies.values().forEach(IOUtils::closeQuietly);
+ rarbCopies.clear();
+ currentBuffer = null;
+ bufferList.clear();
+ }
}
/**
Modified:
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBufferedFile.java
==============================================================================
---
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBufferedFile.java
Mon Oct 13 06:03:19 2025 (r1929104)
+++
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBufferedFile.java
Mon Oct 13 06:07:21 2025 (r1929105)
@@ -242,11 +242,14 @@ public class RandomAccessReadBufferedFil
@Override
public void close() throws IOException
{
- rafCopies.values().forEach(IOUtils::closeQuietly);
- rafCopies.clear();
- fileChannel.close();
- pageCache.clear();
- isClosed = true;
+ if (!isClosed())
+ {
+ rafCopies.values().forEach(IOUtils::closeQuietly);
+ rafCopies.clear();
+ fileChannel.close();
+ pageCache.clear();
+ isClosed = true;
+ }
}
@Override
Modified:
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadMemoryMappedFile.java
==============================================================================
---
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadMemoryMappedFile.java
Mon Oct 13 06:03:19 2025 (r1929104)
+++
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadMemoryMappedFile.java
Mon Oct 13 06:07:21 2025 (r1929105)
@@ -107,6 +107,10 @@ public class RandomAccessReadMemoryMappe
@Override
public void close() throws IOException
{
+ if (isClosed())
+ {
+ return;
+ }
if (fileChannel != null)
{
fileChannel.close();