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