On 1/10/2017 2:43 PM, Prasanta Sadhukhan wrote:
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.

Missing webrev link: http://cr.openjdk.java.net/~psadhukhan/8170578/webrev.01/
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



Reply via email to