Author: tilman
Date: Sat Nov 15 04:46:28 2025
New Revision: 1929745
Log:
PDFBOX-6101: avoid NPE, refactor
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
Sat Nov 15 04:20:03 2025 (r1929744)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
Sat Nov 15 04:46:28 2025 (r1929745)
@@ -425,10 +425,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);
@@ -533,7 +530,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
@@ -580,6 +577,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<FontMatch>(20);
for (FontInfo info : fontInfoByName.values())