[OpenJDK 2D-Dev] [9] RFR JDK-8025439: [TEST BUG] [macosx] PrintServiceLookup.lookupPrintServices doesn't work properly since jdk8b105
Prasanta Sadhukhan
prasanta.sadhukhan at oracle.com
Mon Nov 14 10:18:16 UTC 2016
Hi All,
Please review a small bugfix whereby it is seen that if we specify
printer with space in its name, then
javax/print/PrintServiceLookup/GetPrintServices.java fails citing NPE.
Bug: https://bugs.openjdk.java.net/browse/JDK-8025439
webrev: http://cr.openjdk.java.net/~psadhukhan/8025439/webrev.00/
The NPE happens because
http://hg.openjdk.java.net/jdk9/client/jdk/file/b1543c5eb8af/src/java.desktop/unix/classes/sun/print/PrintServiceLookupProvider.java#l460
calls checkPrinterName() which checks it name contains letter or digit
http://hg.openjdk.java.net/jdk9/client/jdk/file/b1543c5eb8af/src/java.desktop/unix/classes/sun/print/PrintServiceLookupProvider.java#l433
and returns null if has spaces
so lookupPrintServices() gets null
Now, if we remove this <space> check then also, it will not work as
In system running with CUPS, refreshServices calls
CUPSPrinter#getAllPrinters() which returns a set of printers. It seems
it replaces " " with "_" when populating the list
for e.g Ricoh Aficio MP 5002 printer name is sent as
Ricoh_Aficio_MP_5002 and stored in the list so we cannot have <space> in
printer name.
In Mac, it takes <sp> in printer name when we add printers but in linux,
solaris it does not allow spaces in printer name during addition
so in the proposed fix, a check for <sp> is added to make it automatic
pass for non-windows (CUPS) system.
Regards
Prasanta
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20161114/be3ebed7/attachment.html>
More information about the 2d-dev
mailing list