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)

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

Commit messages:
 - Fix
 - Fix
 - 8257810: Only First page are printed in JTable.scrollRectToVisible

Changes: https://git.openjdk.java.net/jdk/pull/8141/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=8141&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8257810
  Stats: 189 lines in 2 files changed: 186 ins; 2 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8141.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8141/head:pull/8141

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

Reply via email to