Skip to content

8378417: Printing All pages results in NPE for 1.1 PrintJob#441

Open
rm-gh-8 wants to merge 1 commit intoopenjdk:pr/440from
rm-gh-8:JDK-8378417-V25
Open

8378417: Printing All pages results in NPE for 1.1 PrintJob#441
rm-gh-8 wants to merge 1 commit intoopenjdk:pr/440from
rm-gh-8:JDK-8378417-V25

Conversation

@rm-gh-8
Copy link
Copy Markdown
Contributor

@rm-gh-8 rm-gh-8 commented Mar 31, 2026

Backporting JDK-8378417: Printing All pages results in NPE for 1.1 PrintJob.

This PR fixes a NullPointerException in PrintJobDelegate.updateAttributes() and a related issue in WPrinterJob where selecting "All Pages" after a page range caused incorrect behavior, by adding a null check for PageRanges and replacing attributes.remove() with setting a default PageRanges(1, Integer.MAX_VALUE).

For parity with Oracle JDK.

Ran related tests on linux-x64, linux-aarch64, macos-aarch64 and windows-x64:

make test TEST=test/jdk/java/awt/PrintJob/TestPrintNoException.java

Results attached:

windows-x64-specific-test.log
macos-aarch64-specific-test.log
linux-x64-specific-test.log
linux-aarch64-specific-test.log

Ran manual tests on macos-aarch64:

~/github/jtreg/build/images/jtreg/bin/jtreg -jdk build/macosx-aarch64-server-release/images/jdk -m test/jdk/java/awt/print/PrinterJob/PageRanges.java

Screenshot:

Screenshot 2026-04-01 at 9 18 32 AM

Documents:

1.pdf
2.pdf

Results:

result: Passed. Execution successful

PageRanges.jtr.txt


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • JDK-8378417 needs maintainer approval

Integration blocker

 ⚠️ Dependency #440 must be integrated first

Issue

  • JDK-8378417: Printing All pages results in NPE for 1.1 PrintJob (Bug - P3 - Approved)

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk25u-dev.git pull/441/head:pull/441
$ git checkout pull/441

Update a local copy of the PR:
$ git checkout pull/441
$ git pull https://git.openjdk.org/jdk25u-dev.git pull/441/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 441

View PR using the GUI difftool:
$ git pr show -t 441

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk25u-dev/pull/441.diff

Using Webrev

Link to Webrev Comment

@bridgekeeper
Copy link
Copy Markdown

bridgekeeper bot commented Mar 31, 2026

👋 Welcome back rmesde! A progress list of the required criteria for merging this PR into pr/440 will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link
Copy Markdown

openjdk bot commented Mar 31, 2026

❗ This change is not yet ready to be integrated.
See the Progress checklist in the description for automated requirements.

@openjdk openjdk bot changed the title Backport 8c4c8a16171187a4a1e9a95c04d20f2efd94145f 8378417: Printing All pages results in NPE for 1.1 PrintJob Mar 31, 2026
@openjdk
Copy link
Copy Markdown

openjdk bot commented Mar 31, 2026

This backport pull request has now been updated with issue from the original commit.

@openjdk openjdk bot added backport Port of a pull request already in a different code base clean Identical backport; no merge resolution required labels Mar 31, 2026
@rm-gh-8 rm-gh-8 marked this pull request as ready for review March 31, 2026 17:27
@openjdk openjdk bot added the rfr Pull request is ready for review label Mar 31, 2026
@mlbridge
Copy link
Copy Markdown

mlbridge bot commented Mar 31, 2026

Webrevs

@rm-gh-8
Copy link
Copy Markdown
Contributor Author

rm-gh-8 commented Apr 1, 2026

/approval request for backport of JDK-8378417: Printing All pages results in NPE for 1.1 PrintJob.

This PR fixes a NullPointerException in PrintJobDelegate.updateAttributes() and a related issue in WPrinterJob where selecting "All Pages" after a page range caused incorrect behavior, by adding a null check for PageRanges and replacing attributes.remove() with setting a default PageRanges(1, Integer.MAX_VALUE).

For parity with Oracle JDK.

Low risk — the null check is a defensive guard, and replacing remove() with a default PageRanges(1, MAX_VALUE) is semantically equivalent to "all pages". The fix addresses a clear regression from JDK-8373239 with minimal code change.

@openjdk
Copy link
Copy Markdown

openjdk bot commented Apr 1, 2026

@rm-gh-8
8378417: The approval request has been created successfully.

@openjdk openjdk bot added approval Requires approval; will be removed when approval is received and removed approval Requires approval; will be removed when approval is received labels Apr 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport Port of a pull request already in a different code base clean Identical backport; no merge resolution required rfr Pull request is ready for review

Development

Successfully merging this pull request may close these issues.

1 participant