[OpenJDK 2D-Dev] [9] RFR JDK-8170578: The Pages Range From in print dialog is disabled

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Tue Jan 10 09:13:13 UTC 2017


Actually, in ubuntu16.10 attribute map did not have 
"page-ranges-supported" attribute because 2 attribute hashmap is created 
in IPPPrintService#readIPPResponse() and most of the supported 
attributes are part of the 2nd hashmap (responseMap[1])
whereas only the 1st hashmap is utilised through responseMap[0] 
[http://hg.openjdk.java.net/jdk9/client/jdk/file/8be0bb1aa238/src/java.desktop/unix/classes/sun/print/IPPPrintService.java#l1760]

As to why 2 hashmaps are created in ubuntu16.10, it is because 
readIPPResponse() checks if key is already present in existing map, then 
create a new hashmap through this code 
<http://hg.openjdk.java.net/jdk9/client/jdk/file/8be0bb1aa238/src/java.desktop/unix/classes/sun/print/IPPPrintService.java#l1887>
and in ubuntu16.10, some attributes (like 
pwg-raster-document-type-supported which is not there in ubuntu 14.04] 
are duplicated.

Proposed fix is to check if there are more than 1 hashmaps, if it is, 
get the entries from those maps, remove duplicate entries and append to 
existing hashmap to get a consolidated map having all the IPP attributes.

Regards
Prasanta
On 12/21/2016 11:28 PM, Phil Race wrote:
> So now I am very suspicious.
> First (previous fix I reviewed) Job Sheets weren't supported on 16.10, 
> now its PageRanges.
>
> I think this merits investigation of what is going on before we commit 
> this fix.
> Why are attributes that have always been supported by CUPS suddenly 
> unavailable ?
>
> And for the cases we image the pages ourselves, we can implement 
> PageRanges
> internally, so for a normal PrinterJob it always can be supported .. 
> regardless of
> what the printer says.
>
> -phil.
>
>
> On 12/14/2016 09:50 PM, Prasanta Sadhukhan wrote:
>>
>> Hi All,
>>
>> Please review a testbug fix for jdk9 for an issue where it it seen 
>> that PageRanges option is disabled in printer dialog in ubuntu16.10.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8170578
>>
>> webrev: http://cr.openjdk.java.net/~psadhukhan/8170578/webrev.00/
>>
>> Issue was, in ubuntu16.10 the attribute map [obtained here 
>> http://hg.openjdk.java.net/jdk9/client/jdk/file/dc658d7dde90/src/java.desktop/unix/classes/sun/print/IPPPrintService.java#l1767]
>> does not have
>> "pageranges-supported" attribute returned by CUPS
>> so this category is not added to supported categories
>> [http://hg.openjdk.java.net/jdk9/client/jdk/file/7f09d558b044/src/java.desktop/unix/classes/sun/print/IPPPrintService.java#l1030]
>> so isAttributeCategorySupported() called by ServiceDialog returns false
>> [http://hg.openjdk.java.net/jdk9/client/jdk/file/7f09d558b044/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l1141]
>> resulting in PageRanges option getting disabled.
>>
>> Fix is to check if PageRanges category is supported in underlying 
>> platform, only then proceed with the test.
>>
>> Regards
>> Prasanta
>

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


More information about the 2d-dev mailing list