Skip to content

NPE because the return value of "org.verapdf.pd.font.truetype.TrueTypeFontParser.getCmapParser()" is null #1568

@theo-foss

Description

@theo-foss

I'm encountering the following NPE during validation:

./verapdf --version --format text /tmp/getCmapParserNPE.pdf 
veraPDF 1.29.178
Built: Wed Dec 03 21:47:00 UTC 2025
Developed and released by the veraPDF Consortium.
Funded by the PREFORMA project.
Released under the GNU General Public License v3
and the Mozilla Public License v2 or later.

Dec 04, 2025 6:54:36 PM org.verapdf.processor.ProcessorImpl validate
WARNING: Exception caught when validating item
org.verapdf.core.ValidationException: Caught unexpected runtime exception during validation
        at org.verapdf.pdfa.validation.validators.BaseValidator.validateAll(BaseValidator.java:151)
        at org.verapdf.processor.ProcessorImpl.validate(ProcessorImpl.java:241)
        at org.verapdf.processor.ProcessorImpl.process(ProcessorImpl.java:119)
        at org.verapdf.processor.BatchFileProcessor.processItem(BatchFileProcessor.java:167)
        at org.verapdf.processor.BatchFileProcessor.processList(BatchFileProcessor.java:85)
        at org.verapdf.processor.AbstractBatchProcessor.process(AbstractBatchProcessor.java:104)
        at org.verapdf.cli.VeraPdfCliProcessor.processFilePaths(VeraPdfCliProcessor.java:143)
        at org.verapdf.cli.VeraPdfCliProcessor.processPaths(VeraPdfCliProcessor.java:104)
        at org.verapdf.cli.VeraPdfCli.singleThreadProcess(VeraPdfCli.java:143)
        at org.verapdf.cli.VeraPdfCli.main(VeraPdfCli.java:112)
        at org.verapdf.apps.GreenfieldCliWrapper.main(GreenfieldCliWrapper.java:54)
Caused by: java.lang.NullPointerException: Cannot invoke "org.verapdf.pd.font.truetype.TrueTypeCmapTable.getGID(int)" because the return value of "org.verapdf.pd.font.truetype.TrueTypeFontParser.getCmapParser()" is null
        at org.verapdf.pd.font.truetype.TrueTypeFontProgram.getWidth(TrueTypeFontProgram.java:129)
        at org.verapdf.pd.font.truetype.PDTrueTypeFont.getWidthFromProgram(PDTrueTypeFont.java:120)
        at org.verapdf.gf.model.impl.operator.textshow.GFGlyph.getWidthFromProgram(GFGlyph.java:198)
        at org.verapdf.gf.model.impl.operator.textshow.GFGlyph.initForNotType3(GFGlyph.java:184)
        at org.verapdf.gf.model.impl.operator.textshow.GFGlyph.<init>(GFGlyph.java:82)
        at org.verapdf.gf.model.impl.operator.textshow.GFGlyph.<init>(GFGlyph.java:70)
        at org.verapdf.gf.model.impl.operator.textshow.GFGlyph.getGlyph(GFGlyph.java:142)
        at org.verapdf.gf.model.impl.operator.textshow.GFOpTextShow.getUsedGlyphs(GFOpTextShow.java:154)
        at org.verapdf.gf.model.impl.operator.textshow.GFOpTextShow.getLinkedObjects(GFOpTextShow.java:110)
        at org.verapdf.gf.model.impl.operator.textshow.GFOpStringTextShow.getLinkedObjects(GFOpStringTextShow.java:58)
        at org.verapdf.pdfa.validation.validators.BaseValidator.addAllLinkedObjects(BaseValidator.java:285)
        at org.verapdf.pdfa.validation.validators.BaseValidator.checkNext(BaseValidator.java:250)
        at org.verapdf.pdfa.validation.validators.BaseValidator.validate(BaseValidator.java:185)
        at org.verapdf.pdfa.validation.validators.BaseValidator.validateAll(BaseValidator.java:149)
        ... 10 more

ERROR /tmp/getCmapParserNPE.pdf PDF/A Validation

reproducer based on veraPDF test suite 6-2-11-6-t02-pass-a.pdf:
getCmapParserNPE.pdf

Metadata

Metadata

Labels

bugA product defect that needs fixingfixed-in-dev

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions