On Thu, 12 May 2022 04:09:29 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> 
wrote:

>> Issue was when printing a JTable which sits inside a JScrollPane and the 
>> table is scrolled down to the end to about 1000th row, only the first page 
>> is printed. 
>> This is because when the table is scrolled down to last page, the bounds.y 
>> becomes -ve 
>> [x=0,y=-15260,width=968,height=16000]
>> so the check `if (!((table.getBounds()).intersects(clip)))` is satisfied 
>> only for 1st page where bounds just intersects the clip 
>> [x=0,y=0,width=968,height=1296]
>> but subsequent pages clip 
>> [[x=0,y=1296,width=968,height=1296], 
>> [x=0,y=2592,width=968,height=1296], 
>> [x=0,y=3888,width=968,height=1296] etc is not intesecting so they are not 
>> printed
>> 
>> This is a regression of JDK-8081491 which was **reworked** in JDK-8236907 
>> where the bounds calculation and usage is made same as in BasicTableUI
>> We need to use the same resetted bounds for this intersection calculation 
>> too as was done for JDK-8236907
>> 
>> Tested against JDK-8081491, 8170349, JDK-8236907 testcases along with other 
>> regression tests and all are OK (link in JBS)
>
> Prasanta Sadhukhan has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Test update

Yeah, similar issue with bounds was found w.r.t JDK-8236907. This fix looks 
good to me.

Changes requested by tejesh...@github.com (no known OpenJDK username).

test/jdk/javax/swing/JTable/PrintAllPagesTest.java line 115:

> 113:         f.add(scrollpane);
> 114:         f.setSize(1000, 800);
> 115:         f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

setDefaultCloseOperation() is required.....?

-------------

PR: https://git.openjdk.java.net/jdk/pull/8141

Reply via email to