RFR: 8378417: Printing All pages results in NPE for 1.1 PrintJob
Alexey Ivanov
aivanov at openjdk.org
Mon Feb 23 21:51:39 UTC 2026
On Mon, 23 Feb 2026 21:27:39 GMT, Phil Race <prr at openjdk.org> wrote:
>> After [JDK-8373239](https://bugs.openjdk.org/browse/JDK-8373239):, Printing ALL pages results in NPE for 1.1 PrintJob because of lack of set pageranges citing
>>
>> Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "javax.print.attribute.standard.PageRanges.getMembers()" because "range" is null
>> at java.desktop/sun.print.PrintJobDelegate.updateAttributes(PrintJobDelegate.java:529)
>> at java.desktop/sun.print.PrintJobDelegate.printDialog(PrintJobDelegate.java:424)
>> at java.desktop/sun.print.PrintJob2D.printDialog(PrintJob2D.java:65)
>> at java.desktop/sun.awt.windows.WToolkit.getPrintJob(WToolkit.java:644)
>> at java.desktop/sun.awt.windows.WToolkit.getPrintJob(WToolkit.java:629)
>>
>> A null check is now added as we are now removing PageRange attribute if not set..It works fine for PrinterJob but fails for 1.1 PrintJob as PrintJobDelegate.updateAttributes called in 1.1 PrintJob use pageRange variable without checking if it exists.
>
> src/java.desktop/share/classes/sun/print/PrintJobDelegate.java line 529:
>
>> 527:
>> 528: PageRanges range = (PageRanges)attributes.get(PageRanges.class);
>> 529: if (range != null) {
>
> I wonder if this is right ?
> Surely if the PageRanges is not there any more, we should update the JobAttributes to a default range ?
> This would leave whatever stale value is present.
I looked at the code review #29312 for [JDK-8373239](https://bugs.openjdk.org/browse/JDK-8373239)… and wondered whether that code should rather ensure `PageRanges.class` attribute is present instead of removing it and the range to the default value.
https://github.com/openjdk/jdk/blob/6b576235b84f51e273da44158bfcadbb48f51baa/src/java.desktop/windows/classes/sun/awt/windows/WPrinterJob.java#L1737-L1739
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29874#discussion_r2843246703
More information about the client-libs-dev
mailing list