Author: tilman
Date: Sat Nov 15 04:46:33 2025
New Revision: 1929746
Log:
PDFBOX-6101: avoid NPE, refactor
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
Sat Nov 15 04:46:28 2025 (r1929745)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
Sat Nov 15 04:46:33 2025 (r1929746)
@@ -405,10 +405,7 @@ final class FontMapperImpl implements Fo
}
// make sure the font provider is initialized
- if (fontProvider == null)
- {
- getProvider();
- }
+ getProvider();
// first try to match the PostScript name
FontInfo info = getFont(format, postScriptName);
@@ -510,7 +507,7 @@ final class FontMapperImpl implements Fo
return new CIDFontMapping(null, ttf, false);
}
- if (cidSystemInfo != null)
+ if (cidSystemInfo != null && fontDescriptor != null)
{
// "In Acrobat 3.0.1 and later, Type 0 fonts that use a CMap whose
CIDSystemInfo
// dictionary defines the Adobe-GB1, Adobe-CNS1 Adobe-Japan1, or
Adobe-Korea1 character
@@ -554,6 +551,9 @@ final class FontMapperImpl implements Fo
private PriorityQueue<FontMatch> getFontMatches(PDFontDescriptor
fontDescriptor,
PDCIDSystemInfo
cidSystemInfo)
{
+ // make sure the font provider is initialized
+ getProvider();
+
PriorityQueue<FontMatch> queue = new PriorityQueue<>(20);
for (FontInfo info : fontInfoByName.values())