You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2022/12/04 12:16:51 UTC
svn commit: r1905732 - /pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBufferedFile.java
Author: lehmi
Date: Sun Dec 4 12:16:51 2022
New Revision: 1905732
URL: http://svn.apache.org/viewvc?rev=1905732&view=rev
Log:
PDFBOX-5550: avoid NPE
Modified:
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBufferedFile.java
Modified: pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBufferedFile.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBufferedFile.java?rev=1905732&r1=1905731&r2=1905732&view=diff
==============================================================================
--- pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBufferedFile.java (original)
+++ pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBufferedFile.java Sun Dec 4 12:16:51 2022
@@ -232,14 +232,18 @@ public class RandomAccessReadBufferedFil
public void close() throws IOException
{
Map<String, ThreadLocalRandomAccessRead> map = randomAccessFiles.get();
- ThreadLocalRandomAccessRead tlRandomAccessRead = map.get(file.toString());
+ ThreadLocalRandomAccessRead tlRandomAccessRead = //
+ map != null ? map.get(file.toString()) : null;
if (tlRandomAccessRead != null)
{
tlRandomAccessRead.removeClosedViews();
}
if (tlRandomAccessRead == null || tlRandomAccessRead.allViewsClosed())
{
- map.remove(file.toString());
+ if (map != null)
+ {
+ map.remove(file.toString());
+ }
fileChannel.close();
pageCache.clear();
isClosed = true;
@@ -275,6 +279,11 @@ public class RandomAccessReadBufferedFil
{
checkClosed();
Map<String, ThreadLocalRandomAccessRead> mapRandomAccessRead = randomAccessFiles.get();
+ if (mapRandomAccessRead == null)
+ {
+ mapRandomAccessRead = new ConcurrentHashMap<>(1);
+ randomAccessFiles.set(mapRandomAccessRead);
+ }
ThreadLocalRandomAccessRead tlRandomAccessRead = mapRandomAccessRead.get(file.toString());
boolean newlyCreated = false;
if (tlRandomAccessRead == null || tlRandomAccessRead.getRandomAccessRead().isClosed())