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

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Fri Jul 1 09:23:20 UTC 2016

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:

> -phil
> 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
>> http://cr.openjdk.java.net/~psadhukhan/5049012/webrev.01/
>> Regards
>> Prasanta
>> On 6/29/2016 11:59 PM, Philip Race wrote:
>>> ---
>>> https://docs.oracle.com/javase/8/docs/api/javax/print/PrintService.html#isAttributeValueSupported-javax.print.attribute.Attribute-javax.print.DocFlavor-javax.print.attribute.AttributeSet- 
>>> Throws:
>>>     NullPointerException - (unchecked exception) if attrval is null.
>>> -- 
>>> So why did you remove the check for null ?
>>> -phil.
>>> 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: 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.
>>>> Regards
>>>> Prasanta

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

More information about the 2d-dev mailing list