[OpenJDK 2D-Dev] [9] RFR JDK-5049012: PrintToFile option is not disabled for flavors that do not support destination

Jayathirth D V jayathirth.d.v at oracle.com
Fri Jul 8 11:20:33 UTC 2016

Hi Prasanta,


Changes are fine.





From: Prasanta Sadhukhan 
Sent: Friday, July 08, 2016 4:42 PM
To: Jayathirth D V
Cc: 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-5049012: PrintToFile option is not disabled for flavors that do not support destination


Hi Jay,

Thanks for pointing that out. 
Modified testcase to run in linux only and added check to fail if no printer service is found.


On 7/8/2016 4:00 PM, Jayathirth D V wrote:

Hi Prasanta,


Since CUPS is not used in Windows, your change will not make difference if I run the test in Windows.

Please add @requires tag in jtreg test case and there are some lines which are 80 character plus. 


Also please add null check when you create PrinterService in test case.





From: Philip Race 
Sent: Friday, July 08, 2016 4:46 AM
To: Prasanta Sadhukhan
Cc: 2d-dev
Subject: Re: [OpenJDK 2D-Dev] [9] RFR JDK-5049012: PrintToFile option is not disabled for flavors that do not support destination


Ok .. +1


On 7/1/16, 2:23 AM, Prasanta Sadhukhan wrote: 

Hi Phil,

On 6/30/2016 7:50 PM, Philip Race wrote:

Eh ? Before your change the code was calling 

isAttributeCategorySupported(), not isAttributeValueSupported()
So there was not previously a possibility of that NPE, and
my point was now you have changed that call you need that !=null check
even more ..

Yes, I got that, right immediately after sending the below mail and sent another email clarifying my misunderstanding.

But I think there is still a problem. Now dstSupported is set only if
the *specific* destination is supported.
A malformed file: URL would not be valid but should not
disable (grey out) the print to file checkbox which
is what it looks like here .. can you verify this ?

Yes, we will grey out the checkbox for malformed url (like files::/tmp/output.ps) as I found out. Please find modified webrev that takes care of this problem too:
HYPERLINK "http://cr.openjdk.java.net/%7Epsadhukhan/5049012/webrev.02/"http://cr.openjdk.java.net/~psadhukhan/5049012/webrev.02/



On 6/30/16, 12:45 AM, Prasanta Sadhukhan wrote: 

Hi Phil, 

NPE will be thrown 
public boolean isAttributeValueSupported(Attribute attr, 
                                             DocFlavor flavor, 
                                             AttributeSet attributes) { 
        if (attr == null) { 
            throw new NullPointerException("null attribute"); 
before updateInfo() will be called so I guess null check is redundant there. Anyways, I have added the check back just to be safe 
HYPERLINK "http://cr.openjdk.java.net/%7Epsadhukhan/5049012/webrev.01/"http://cr.openjdk.java.net/~psadhukhan/5049012/webrev.01/ 

On 6/29/2016 11:59 PM, Philip Race wrote: 


    NullPointerException - (unchecked exception) if attrval is null. 


So why did you remove the check for null ? 


On 6/28/16, 3:04 AM, Prasanta Sadhukhan wrote: 

Hi All, 

Please review a fix for an issue where it is seen that "Print-To-File" option is enabled even for flavors that do not support Destination attribute 
even though isAttributeValueSupported for that flavor returns false. 

Bug: https://bugs.openjdk.java.net/browse/JDK-5049012 
webrev: HYPERLINK "http://cr.openjdk.java.net/%7Epsadhukhan/5049012/webrev.00/"http://cr.openjdk.java.net/~psadhukhan/5049012/webrev.00/ 

The reason for this behaviour is in Print Dialog code, the validation is done against isAttributeCategorySupported() which still returns true because Pageable and Printable supports it 
and therefore the "Print-to-File" option gets enabled. 

But print dialog is shown specific to a doc flavor and a print service (selected one) and hence must validate the attribute against the chosen doc flavor. 
So, the proposed fix checks the attributevalue is supported or not for that flavor to determine if we need to enable "Print-to-File" option in print dialog. 




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20160708/58a3b464/attachment.html>

More information about the 2d-dev mailing list