Author: tilman
Date: Sat Nov 15 04:46:38 2025
New Revision: 1929747
Log:
PDFBOX-6101: avoid NPE, refactor
Modified:
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
Modified:
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
==============================================================================
---
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
Sat Nov 15 04:46:33 2025 (r1929746)
+++
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
Sat Nov 15 04:46:38 2025 (r1929747)
@@ -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);
@@ -513,7 +510,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
@@ -560,6 +557,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())