[OpenJDK 2D-Dev] NPE in Java Print

Mark A. Claassen MClaassen at ocie.net
Thu May 9 19:52:55 UTC 2019

In trying to be helpful to the OpenJDK community, I wanted to report a bug.  Not sure what the best way is to do this right now, so I reported it to Oracle, and now on this list.  (The Oracle bug is still being reviewed (Internal review ID : 9060615).

Anyway, I found the NPE and "fixed it" by guarding against the NULL value.  This change below works for me.
We have 3 HP printers, two of them could not print until I implemented this work-around.  With this, everything seems to work fine.
(I told Oracle that I thought the two failing printers were color, but I apparently only one of those was color.  Sorry.)

I am not sure if this is a valid bug fix, or the real error is in the object creating the attributes; it doesn't look like the other attributes can be NULL.
"printerResAttr" is "protected", but I could find no other reference to it in the Java source code.

Anyway, for us, these two printers cannot print with any released version of Java 11 or Java 12.  I submitted a test program with the Oracle bug report, but can also supply them here if that would help.

Thanks for your time,


Changed Lines 1273-1285 in sun.print.RasterPrinterJob
        printerResAttr = (PrinterResolution)attributes.get(PrinterResolution.class);
        if (service.isAttributeCategorySupported(PrinterResolution.class)) {
            if (!isSupportedValue(printerResAttr,  attributes)) {
               printerResAttr = (PrinterResolution)
            if (printerResAttr != null) { //LINE ADDED
                double xr =
                double yr = printerResAttr.getFeedResolution(ResolutionSyntax.DPI);
                setXYRes(xr, yr);
            } //LINE ADDED

Mark Claassen
Senior Software Engineer

Donnell Systems, Inc.
130 South Main Street
Leighton Plaza Suite 375
South Bend, IN  46601
E-mail: mailto:mclaassen at ocie.net
Voice: (574)232-3784
Fax: (574)232-4014
Confidentiality Notice: OCIESERVICE
The contents of this e-mail message and any attachments are intended solely for the addressee(s) named in this message. This communication is intended to be and to remain confidential. If you are not the intended recipient of this message, or if this message has been addressed to you in error, please immediately alert the sender by reply e-mail and then delete this message and its attachments. Do not deliver, distribute, copy, disclose the contents or take any action in reliance upon the information contained in the communication or any attachments.

More information about the 2d-dev mailing list