[OpenJDK 2D-Dev] [9] RFR: JDK-8066139, , Null return from PrintJob.getGraphics() running closed/java/awt/PrintJob/HighResTest/HighResTest.java
prasanta sadhukhan
prasanta.sadhukhan at oracle.com
Mon Feb 22 06:29:28 UTC 2016
Hi Phil,
>>Additionally, have you tried running the original test case provided
with 8061267
>> against your fix ?
The 8061267 testcase behaves similarly before and after my fix.
>> If I manually select it, (ie select that "Pages" radio button) then
press print,
>> then voila, the NPE is back!
It seems this behaviour is same in linux too for this HighResTest testcase.
Regards
Prasanta
On 2/20/2016 1:55 AM, Phil Race wrote:
> I am having trouble building JDK 9 at the moment so i applied 8061267
> to jdk8u-dev
> and was able to reproduce the regression and have a couple of observations
>
> - I am now seeing the NPE after the first page as you did .. puzzling.
> - I next applied your fix but still see the NPE !
>
> It appears that all your fix did is stop the "PD_PAGENUMS" flag being
> automatically
> set. If I manually select it, (ie select that "Pages" radio button)
> then press print,
> then voila, the NPE is back!
>
> -phil.
>
>
> On 02/19/2016 10:53 AM, Phil Race wrote:
>> I am not sure I can be correctly understanding the fix as the
>> ramification seems
>> to be that if the users wants to print only Page 3 of a 10 page
>> document and so sets
>> from page=3 and to page=3, that this request will be ignored and all
>> pages will
>> be printed .. can you test such a scenario.
>>
>> Additionally, have you tried running the original test case provided
>> with 8061267
>> against your fix ?
>>
>> Also when I ran the HighResTest on a current build I saw a null
>> graphics on
>> the very first call to getGraphics() which is different than what I
>> interpret
>> you as saying - you see the null *after* the first page is printed.
>>
>> -phil.
>>
>> On 02/19/2016 01:18 AM, prasanta sadhukhan wrote:
>>> Hi Phil, All,
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8066139
>>> webrev: http://cr.openjdk.java.net/~psadhukhan/8066139/webrev.00/
>>>
>>> It was seen after fix of JDK-8061267
>>> <https://bugs.openjdk.java.net/browse/JDK-8061267>: PrinterJob:
>>> Specified Page Ranges not displayed in Windows Native Print Dialog
>>> the closed/java/awt/PrintJob/HighResTest/HighResTest.java was
>>> failing with NPE when PrinterJob.getGraphics() is called the 2nd
>>> time before calling PrinterJob.end().
>>>
>>> The above fix caused this regression because it sets the PD_PAGENUMS
>>> flag for windows PrintDlg struct which causes *Pages* radio button
>>> to be selected in print dialog.
>>> However, fromPage and toPage was both set to 1 so after the 1st page
>>> is printed, RasterPrinterJob.print(attributes) finishes and
>>> graphicsToBeDrawn.closeWhenEmpty() gets called
>>> http://hg.openjdk.java.net/jdk9/client/jdk/file/d8def65c6c00/src/java.desktop/share/classes/sun/print/PrintJob2D.java#l1006
>>>
>>> which sets the queue to null so when PrinterJob2D#getGraphics()
>>> calls graphicsToBeDrawn.pop() it sees queue to be null and sets
>>> graphics object to be null so
>>> PrinterJob.getGraphics() gets null and g.drawLine in testcase causes
>>> NPE since g is null.
>>>
>>> Fix was done to set the PD_PAGENUMS flag only when toPage is more
>>> than fromPage in which case, "All" will be selected in printer
>>> dialog and RasterPrinterJob.print() will finish only after printing
>>> all the pages.
>>>
>>> Regards
>>> Prasanta
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20160222/00a531e0/attachment.html>
More information about the 2d-dev
mailing list