[OpenJDK 2D-Dev] [9]: RFR JDK-8058316, , lookupDefaultPrintService returns null on Solaris 11

Phil Race philip.race at oracle.com
Thu Mar 3 21:51:39 UTC 2016

I think there is a small memory leak with this code :

"Use the cupsFreeDests function to free the destination list"

Also I am not sure if you are using cupsGetDest as intended :-

  202     cups_dest_t *dest = j2d_cupsGetDest(NULL, NULL, num_dests, dests);
  203     if (dest != NULL) {
  204         for (i = 0; i < num_dests; i++) {
  205             if (dest[i].is_default) {
  206                 defaultPrinter = dest[i].name;
  207                 break;
  208             }
  209         }
  210     }

I don't think you are expected to iterate over the result here.
I think it is already the pointer to the default. In other words
the function will already have done what your for loop is doing.
If there is no default you will iterate off the end ..


On 03/03/2016 02:39 AM, prasanta sadhukhan wrote:
> Hi Phil,
> Bug: https://bugs.openjdk.java.net/browse/JDK-8058316
> webrev: http://cr.openjdk.java.net/~psadhukhan/8058316/webrev.00/
> The issue was on some Solaris 11 hosts lookupDefaultPrintService() 
> returns null while lpstat -d reports an ipp printer.
> The issue was found to exist in linux too since it uses CUPS.
> What was happening was that CUPSPrinter.java#getDefaultPrinter() 
> searches for server-defined default destination by connection to CUPS 
> server but
> if the user sets the default printer using "lpoptions -d 
> <printername>" command, server will not have any knowledge of this 
> settings and this user-set default printer (which is stored in 
> ~/.cups/lpoptions file) was not searched
> and getDefaultPrinter() returns null since it could not find any 
> server default printer.
> Fix is to call cupsGetDest API to search for a lpoptions-defined 
> default printer and if not set, then search for server-defined 
> destination.
> I could not provide a regression testcase for this as it involves 
> setting default printer using lpoptions command.
> Regards
> Prasanta

More information about the 2d-dev mailing list