[OpenJDK 2D-Dev] [9] RFR 8170352: The collate option is not checked

Phil Race philip.race at oracle.com
Mon Dec 19 21:12:52 UTC 2016


I can believe that there are problems with some printers and not others.
Is this a Postscript printer, or not.

IIRC you have Ricoh Aficio MP 5002 which is Postscript capable .. but it 
sounds to be an option :
https://www.ricoh-usa.com/en/products/pd/mp-5002-black-and-white-laser-multifunction-printer/_/R-415957

Anyway, I prefer this approach - not denying the ability to do collation 
just because
it fails on some printers.

+1

-phil.

On 12/16/2016 05:16 AM, Prasanta Sadhukhan wrote:
>
> I could finally manage to build on ubuntu16.04 (seems it uses gcc5.4 
> which is more than officially supported 4.9 causing some hotspot failure).
>
> Anyways, I am seeing the same "uncollation" issue in 16.04 ie it 
> always collate irrespective of "collate" box is checked or not. I am 
> not sure if it's got anything to do with my Ricoh printer.
>
> But, if you are seeing it working in yours, then probably all is well, 
> so I am sending this modified webrev which causes awt functional test 
> to show the printer dialog as expected.
> http://cr.openjdk.java.net/~psadhukhan/8170352/webrev.01/
>
> Probably Yuri or submitter can verify it at their end with this patch 
> if it works.
>
> Regards
> Prasanta
> On 12/15/2016 4:55 AM, Phil Race wrote:
>> With a hacked JDK 9 (so that collate is not disabled) I can print 
>> either collated or un-collated.
>> This is on Ubuntu 16.04 with HP CP4525
>>
>> testing this is a pain since the spooler hangs in "processing" after 
>> every job
>> and I need to kill the process and restart the printer.
>>
>> That is not a JDK problem since (a) outside our scope and (b) same 
>> problem with libreoffice printing ..
>>
>> But it makes me think that we should be looking at reverting 8016737 
>> .. not extending it.
>>
>> -phil.
>>
>> On 12/14/2016 01:20 PM, Phil Race wrote:
>>>
>>>
>>> On 12/14/2016 01:40 AM, Prasanta Sadhukhan wrote:
>>>>
>>>> Hi Phil,
>>>>
>>>>
>>>> On 12/14/2016 1:40 AM, Phil Race wrote:
>>>>> Hi,
>>>>>
>>>>> Thanks for checking that.
>>>>>
>>>>> The bit I don't like here is that the end-user can then no longer 
>>>>> ask for collation
>>>>> at all on Linux even though it has some chance of working on some 
>>>>> versions.
>>>>>
>>>> This is the case even without my change and collate option is 
>>>> disabled for PrinterJob.
>>>> My fix (?) makes it disabled for PrintJob too.
>>>
>>> Ah yes.
>>>>> Hmm ..
>>>>>
>>>>> http://stackoverflow.com/questions/31056278/postscript-file-is-not-collating-when-cups-copies-is-set
>>>>> ---
>>>>> In our cups class we were doing a cupsAddOption("copies", "2",.. 
>>>>> and cupsAddOption("Collate", "True", .. commands (see examples 
>>>>> below). It turns out the the cups "copies" command was killing the 
>>>>> Collating if it set to 2. Like the orientation postscript/cups 
>>>>> conflict you need to set the cups copies value to 1 to get the 
>>>>> collation to work. The postscript file already knows its going to 
>>>>> print out, for example 2 copies.
>>>>> ---
>>>>>
>>>>> We set NumCopies in the Postscript along with collate :-
>>>>>             mPSStream.print(isCollated() ? " /Collate true":"");
>>>>>             mPSStream.print(" /NumCopies " +getCopiesInt());
>>>>>
>>>>> So when we exec we also do "lp -# 2 .. " or whatever do set copies.
>>>>>
>>>> We are setting copies to 1 in 
>>>> http://hg.openjdk.java.net/jdk9/client/jdk/file/dc658d7dde90/src/java.desktop/share/classes/sun/print/PSPrinterJob.java#l735.
>>>
>>> OK.
>>>
>>>>
>>>> One thing is that, in my testing in ubuntu14.04 "collation" is 
>>>> working and "uncollation" is not working. When I print 2 copies and 
>>>> do not select "collate" option in printer dialog [I enabled collate 
>>>> option by commenting out the isLinux check from 
>>>> http://hg.openjdk.java.net/jdk9/client/jdk/file/a21bac70753d/src/java.desktop/unix/classes/sun/print/IPPPrintService.java#l1062] 
>>>>
>>>> then, it prints Page 0, Page 1, Page 0, Page 1 [same as, when I 
>>>> checked "collate" option] in my Ricoh printer in double-sided 
>>>> print. I think for uncollation, it should print Page 0, Page 0 
>>>> back-to-back in 1 copy and Page1-Page1 in another copy, right?
>>>
>>> Yes, uncollated should be as you say.
>>> What is going on ??? Is this for PrinterJob or PrintJob or both ?
>>> I need to configure a printer on my Ubuntu .. I lost them recently 
>>> when my hard drive went bad.
>>>
>>> -phil..
>>>
>>>>
>>>> Regards
>>>> Prasanta
>>>>> Does it help if we stop doing that  for the collated case ?
>>>>>
>>>>>
>>>>> -phil.
>>>>>
>>>>> On 12/10/2016 12:19 AM, Prasanta Sadhukhan wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 12/10/2016 4:58 AM, Phil Race wrote:
>>>>>>> Regarding being hard-coded for "Selection", the point there is 
>>>>>>> that in the AWT code path we always generate Postscript, whereas 
>>>>>>> in the 2D path we may send some other content. Since we generate 
>>>>>>> Postscript my instinct here is that Collate should always work 
>>>>>>> since that gets embedded in the Postscript. The CUPS filter 
>>>>>>> should then do whatever is necessary to generate the right 
>>>>>>> number of collated or uncollated copies for the printer. I 
>>>>>>> tracked down the changeset that has the code you reference 
>>>>>>> http://hg.openjdk.java.net/jdk8/jdk8/jdk/rev/dead66347eca If you 
>>>>>>> read the bug report for that : 
>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8016737 then it becomes 
>>>>>>> clear (sort of) that this was a workaround for the oddity that 
>>>>>>> Collate worked on Ubuntu 12.04 but not on Ubuntu 13.04, so the 
>>>>>>> idea was to stop saying it was supported. That is very annoying 
>>>>>>> of course and I'd love to know if we've rechecked from the 
>>>>>>> source that "CUPS does not report collate as a supported attribute"
>>>>>> I checked getAttMap (response received from cups)
>>>>>> http://hg.openjdk.java.net/jdk9/client/jdk/file/dc658d7dde90/src/java.desktop/unix/classes/sun/print/IPPPrintService.java#l1767
>>>>>> and there is no "collate-supported" attribute in there.
>>>>>>> It is mentioned in CUPS docs. 
>>>>>>> https://opensource.apple.com/source/cups/cups-62/doc/spm.shtml?txt#CONSTANTS 
>>>>>>> Also the fix you are proposing doesn't seem to change anything 
>>>>>>> that will help the test. It expects Collate to be checked. 
>>>>>>> Doesn't it ?
>>>>>> The fix does not directly help the test. The idea is to have the 
>>>>>> test call first isAttributeCategorySupprted(SheetCollate.class) 
>>>>>> and only execute the test if it is supported. It is mentioned 
>>>>>> inthe bug report.
>>>>>> Since, now our code returns false for SheetCollate attribute, my 
>>>>>> fix will disable the collate option to prevent anomaly of 
>>>>>> returning false for support but enabling the collate option.
>>>>>>
>>>>>> Regards
>>>>>> Prasanta
>>>>>>> -phil.
>>>>>>>
>>>>>>>
>>>>>>> On 12/09/2016 12:22 AM, Prasanta Sadhukhan wrote:
>>>>>>>>
>>>>>>>> Hi All,
>>>>>>>>
>>>>>>>> In continuation with the below mail, the issue is "collate" 
>>>>>>>> option is not checked for linux.
>>>>>>>>
>>>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8170352
>>>>>>>>
>>>>>>>> webrev: http://cr.openjdk.java.net/~psadhukhan/8170352/webrev.00/
>>>>>>>>
>>>>>>>> Proposed fix is to disable collate option for linux in printer 
>>>>>>>> dialog.
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> Prasanta
>>>>>>>> On 12/8/2016 4:23 PM, Prasanta Sadhukhan wrote:
>>>>>>>>>
>>>>>>>>> Hi Phil,
>>>>>>>>>
>>>>>>>>> I was investigating JDK-8170352: The collate option is not 
>>>>>>>>> checked and I found that CUPS does not report collate as 
>>>>>>>>> supported attribute.
>>>>>>>>>
>>>>>>>>> It is removed from printRequestAttrib 
>>>>>>>>> [http://hg.openjdk.java.net/jdk9/client/jdk/file/a21bac70753d/src/java.desktop/unix/classes/sun/print/IPPPrintService.java#l167]
>>>>>>>>> so we do not look for collate-supported attribute in CUPS. 
>>>>>>>>> Infact, getAttMap does not have any "collate-supported" 
>>>>>>>>> attribute too!!
>>>>>>>>> Also, this code 
>>>>>>>>> [http://hg.openjdk.java.net/jdk9/client/jdk/file/a21bac70753d/src/java.desktop/unix/classes/sun/print/IPPPrintService.java#l1062] 
>>>>>>>>> has been added [for 8016737]
>>>>>>>>> to remove SheetCollate from supported attributes.
>>>>>>>>>
>>>>>>>>> In light of this, I think we should disabled collate option 
>>>>>>>>> from our print dialog even for Toolkit based PrintJob. It 
>>>>>>>>> seems, from this code
>>>>>>>>> http://hg.openjdk.java.net/jdk9/client/jdk/file/a21bac70753d/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l1251
>>>>>>>>> it is enabled if we specify in testcase
>>>>>>>>> /job.setDefaultSelection(JobAttributes.DefaultSelectionType.SELECTION); 
>>>>>>>>> /in which case isAWT set to true.
>>>>>>>>> even though selection is determined by attribute support 
>>>>>>>>> [http://hg.openjdk.java.net/jdk9/client/jdk/file/a21bac70753d/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l1320]
>>>>>>>>>
>>>>>>>>> I could not find why it is hardcoded to setEnabled(true) for 
>>>>>>>>> "Selection". Do you know? mercurial history shows that line 
>>>>>>>>> from jdk7 and I could not find previous history.
>>>>>>>>>  I think there also, we should check for "scSupported" to 
>>>>>>>>> enable sheetcollate? Anyways, "Selection" option is not there 
>>>>>>>>> in linux.
>>>>>>>>> Please let me know your views.
>>>>>>>>>
>>>>>>>>> Regards
>>>>>>>>> Prasanta
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

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


More information about the 2d-dev mailing list