Ok. Updated webrev just in case we are not reading the protocol wrongly.
http://cr.openjdk.java.net/~psadhukhan/8170578/webrev.02/
Regards
Prasanta
On 1/12/2017 8:04 AM, Philip Race wrote:
I am looking at this and the hold up is I can't remember the protocol
readIPPResponse() is
trying to follow. Without that understanding it is hard to say much ..
so I need to go read
up and remember ..
Two comments : There is an extra space in
if (responseMap.length > 1) {
The test update is bogus in referring to this bug. The change is
nothing to do with the bug.
And I actually prefer printer tests to throw nasty exceptions when
there are no printers
and they need one ... else SQE just don't configure printers on test
systems and the tests all wrongly pass.
Would you run Linux UI tests on a blade with no X-server running ?
-phil.
On 1/10/17, 1:14 AM, Prasanta Sadhukhan wrote:
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