Skip to content

Fix #1586: Fix PdfReader partial getPageSize by inheriting MediaBox and defaulting missing page boxes to Letter - #1611

Open
ganzah wants to merge 1 commit into
LibrePDF:masterfrom
ganzah:fix-1586-nullpointer-getpagesize
Open

Fix #1586: Fix PdfReader partial getPageSize by inheriting MediaBox and defaulting missing page boxes to Letter#1611
ganzah wants to merge 1 commit into
LibrePDF:masterfrom
ganzah:fix-1586-nullpointer-getpagesize

Conversation

@ganzah

@ganzah ganzah commented Aug 3, 2026

Copy link
Copy Markdown

Fixes #1586

Description of the Bugfix

Bug: PdfReader.getPageSize failed in partial-read mode when a page did not define its own MediaBox, because lazy page resolution did not apply inherited page-tree attributes and did not provide the existing Letter fallback used by full-read mode

Fix: Update partial page resolution in PageRefs.getSinglePage to merge inherited page attributes into the resolved leaf page and assign a Letter MediaBox when none exists anywhere in the hierarchy, making partial-read behavior consistent with full-read mode.

Unit-Tests for the Bugfix

  • Unit-Tests added to reproduce the bug

New test class PdfReaderPageSizeTest.java adds tests for PdfReader#getPageSize both for "full read" mode and "partial read" mode. There are two tests for each mode: one the uses a synthetic pdf with a page that has no MEDIABOX attribute and one that uses a synthetic pdf that has no MEDIABOX attribute at all. The two tests for the "full read" mode work in the master branch, while the two tests for the "partial read" mode don't. All tests work in the branch with the bug fix.

Compatibilities Issues

No known compatibility issues

…diaBox and defaulting missing page boxes to Letter
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 10 complexity · 4 duplication

Metric Results
Complexity 10
Duplication 4

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@sonarqubecloud

sonarqubecloud Bot commented Aug 3, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

NullPointerException when getting page size in document with no MediaBox

1 participant