[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