[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-2d-dev
Subject:    Re: [OpenJDK 2D-Dev] [9]: RFR JDK-8058316, , lookupDefaultPrintService returns null on Solaris 11
From:       Jayathirth D V <jayathirth.d.v () oracle ! com>
Date:       2016-03-07 6:18:32
Message-ID: a333a736-465e-4e0e-8362-840ca373ba5c () default
[Download RAW message or body]

Fix looks fine. Please add relevant noreg label in bug before resolving it, since \
there is no test case.

Thanks,
Jay
-----Original Message-----
From: Phil Race 
Sent: Saturday, March 05, 2016 1:00 AM
To: prasanta sadhukhan
Cc: 2d-dev@openjdk.java.net
Subject: Re: [OpenJDK 2D-Dev] [9]: RFR JDK-8058316, , lookupDefaultPrintService \
returns null on Solaris 11

Approved.

-phil.

On 03/04/2016 02:47 AM, prasanta sadhukhan wrote:
> Hi Phil,
> 
> Please find the modified webrev
> http://cr.openjdk.java.net/~psadhukhan/8058316/webrev.01/
> 
> Regards
> Prasanta
> On 3/4/2016 3:21 AM, Phil Race wrote:
> > I think there is a small memory leak with this code :
> > https://www.cups.org/documentation.php/doc-2.0/api-cups.html#cupsGetD
> > ests
> > 
> > 
> > "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 ..
> > 
> > -phil.
> > 
> > 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
> > > 
> > 
> 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic