The fix looks good to me.

 

Regards,

Rajeev Chamyal

 

Subject: 

Re: <Swing Dev> RFR: [9] [JDK-8081491] The case print incomplete.

Date: 

Fri, 16 Oct 2015 13:19:37 +0300

From: 

Alexander Scherbatiy HYPERLINK 
"mailto:alexandr.scherba...@oracle.com";<alexandr.scherba...@oracle.com>

To: 

prasanta sadhukhan HYPERLINK 
"mailto:prasanta.sadhuk...@oracle.com";<prasanta.sadhuk...@oracle.com>

CC: 

Phil Race HYPERLINK "mailto:philip.r...@oracle.com";<philip.r...@oracle.com>, 
Sergey Bylokhov HYPERLINK 
"mailto:sergey.bylok...@oracle.com";<sergey.bylok...@oracle.com>, HYPERLINK 
"mailto:swing-dev@openjdk.java.net"swing-dev@openjdk.java.net

 

  The fix looks good to me.
 
  Thanks,
  Alexandr.
 
On 10/14/2015 2:26 PM, prasanta sadhukhan wrote:
> 
> 
> On 10/9/2015 3:00 PM, Alexander Scherbatiy wrote:
>> On 10/7/2015 3:10 PM, prasanta sadhukhan wrote:
>>> Hi All,
>>> 
>>> @Sergey,Phil,Alexander Z
>>> http://cr.openjdk.java.net/~psadhukhan/8081491/webrev.10/
>> 
>>     Have you checked the corner cases like printing a table which has 
>> only one row (with and without a scroll pane)?
>>     Could you add these scenarios to the test?
>> 
> Yes, I have checked this cases. JTable with 1 row will not show a 
> scrollpane so it will be same as a table with 1 row without a scrollpane.
> I have added one row without scrollpane subtest
> 
> http://cr.openjdk.java.net/~psadhukhan/8081491/webrev.11/
> 
> Regards
> Prasanta
>> Thanks,
>>    Alexandr,
>> 
>>> 
>>> Any more comments/feedback? Can I get a +1 for this?
>>> 
>>> Regards
>>> Prasanta
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On 09/25/2015 04:47 AM, prasanta sadhukhan wrote:
>>>>>>>>> Thanks Alexander. Can I get a +1 for this?
>>>>>>>>> 
>>>>>>>>> Regards
>>>>>>>>> Prasanta
>>>>>>>>> On 9/25/2015 2:43 PM, Alexander Scherbatiy wrote:
>>>>>>>>>> 
>>>>>>>>>>   The fix looks good to me.
>>>>>>>>>> 
>>>>>>>>>>   Thanks,
>>>>>>>>>>   Alexandr.
>>>>>>>>>> 
>>>>>>>>>> On 9/25/2015 9:26 AM, prasanta sadhukhan wrote:
>>>>>>>>>>> Added null check for SwingUtilities.getUnwrappedParent(table).
>>>>>>>>>>> Please review the updated webrev
>>>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8081491/webrev.08/
>>>>>>>>>>> 
>>>>>>>>>>> Regards
>>>>>>>>>>> Prasanta
>>>>>>>>>>> On 9/24/2015 5:19 PM, Alexander Scherbatiy wrote:
>>>>>>>>>>>> On 9/23/2015 12:26 PM, prasanta sadhukhan wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> On 9/23/2015 2:46 PM, Alexander Scherbatiy wrote:
>>>>>>>>>>>>>> On 9/23/2015 9:42 AM, prasanta sadhukhan wrote:
>>>>>>>>>>>>>>> I have updated the code as per your comment.
>>>>>>>>>>>>>>> Please review this webrev
>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8081491/webrev.07/
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>    - Is it possible that 
>>>>>>>>>>>>>> SwingUtilities.getUnwrappedParent(table) returns null?
>>>>>>>>>>>>> I have not seen it. It will return at least JRootPane, I 
>>>>>>>>>>>>> guess.
>>>>>>>>>>>> 
>>>>>>>>>>>>    Is it possible just crate a JTable with some rows and 
>>>>>>>>>>>> print it, without adding to a frame or some others components?
>>>>>>>>>>>> 
>>>>>>>>>>>>    Thanks,
>>>>>>>>>>>>    Alexandr.
>>>>>>>>>>>>>>    - Does the fix work correctly for a case when rMax has 
>>>>>>>>>>>>>> initial zero value but it is decremented on line 1857?
>>>>>>>>>>>>> rMax can have -1 from table.rowAtPoint() in which case it 
>>>>>>>>>>>>> will be changed to total rowCount so it will not be 0 
>>>>>>>>>>>>> before line 1857.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Regards
>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>   Thanks,
>>>>>>>>>>>>>>   Alexandr.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>> On 9/22/2015 7:01 PM, Alexander Scherbatiy wrote:
>>>>>>>>>>>>>>>> On 9/21/2015 12:05 PM, prasanta sadhukhan wrote:
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> On 9/21/2015 2:20 PM, Alexandr Scherbatiy wrote:
>>>>>>>>>>>>>>>>>> 18.09.2015 10:16, prasanta sadhukhan пишет:
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> On 9/17/2015 8:18 PM, Alexander Scherbatiy wrote:
>>>>>>>>>>>>>>>>>>>> On 9/16/2015 2:04 PM, prasanta sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>> Hi Alexander, Sergey,
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> Waiting for your review on this.
>>>>>>>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8081491/webrev.06/ 
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>    Could you describe why the paint artifacts are 
>>>>>>>>>>>>>>>>>>>> drawn when a scroll pane is present?
>>>>>>>>>>>>>>>>>>> I see that normally JTable has always been 
>>>>>>>>>>>>>>>>>>> associated with JScrollpane and it uses
>>>>>>>>>>>>>>>>>>> // Paint the grid.
>>>>>>>>>>>>>>>>>>>  paintGrid(g, rMin, rMax, cMin, cMax);
>>>>>>>>>>>>>>>>>>> // Paint the cells.
>>>>>>>>>>>>>>>>>>> paintCells(g, rMin, rMax, cMin, cMax);
>>>>>>>>>>>>>>>>>>> to paint the cells in the table.
>>>>>>>>>>>>>>>>>>> When we scroll the table, rMin can be say 41 and 
>>>>>>>>>>>>>>>>>>> rMax can be 43 so it expects to draw 3 rows with the 
>>>>>>>>>>>>>>>>>>> above code (since the for loop uses rows = rMin; 
>>>>>>>>>>>>>>>>>>> rows <= rMax)
>>>>>>>>>>>>>>>>>>> Also, sometimes rMin canbe 44 and rMax can be 44 too 
>>>>>>>>>>>>>>>>>>> in which case 1 row would be painted as per the 
>>>>>>>>>>>>>>>>>>> above for loop
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> but since I have modified the code to use (to make 
>>>>>>>>>>>>>>>>>>> same rows to show on console and in printed page)
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> // Paint the grid.
>>>>>>>>>>>>>>>>>>>  paintGrid(g, rMin, rMax-1, cMin, cMax);
>>>>>>>>>>>>>>>>>>> // Paint the cells.
>>>>>>>>>>>>>>>>>>> paintCells(g, rMin, rMax-1, cMin, cMax);
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> it paints only 2 rows (or 0 rows in case 
>>>>>>>>>>>>>>>>>>> rMin=rMax=44 where rMax-1 is 43 so for loop will not 
>>>>>>>>>>>>>>>>>>> be executed) and when we go on scrolling, 1 less row 
>>>>>>>>>>>>>>>>>>> gets painted always than what it expects resulting 
>>>>>>>>>>>>>>>>>>> in artifacts.
>>>>>>>>>>>>>>>>>>> So, I have kept the same code for JTable when it has 
>>>>>>>>>>>>>>>>>>> scrollpane (which was till now the case)
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>     - Does it mean if the initialpaintGrid()/Cell() 
>>>>>>>>>>>>>>>>>> methods are used there are artifacts when a table is 
>>>>>>>>>>>>>>>>>> not used with JScrollPane?
>>>>>>>>>>>>>>>>> When table is not used with JScrollPane, there is no 
>>>>>>>>>>>>>>>>> change of table visible rows (since user is not 
>>>>>>>>>>>>>>>>> scrolling the table) so there is no artifacts if table 
>>>>>>>>>>>>>>>>> does not have jscrollpane.
>>>>>>>>>>>>>>>>>>     - It is not necessary to add isScrollPanePresent 
>>>>>>>>>>>>>>>>>> varibale if it is used only once
>>>>>>>>>>>>>>>>> I did not understand. It's a variable and not a 
>>>>>>>>>>>>>>>>> function. So, what you are proposing me to do?
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> It is possible just to use
>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>> +        if (some expression) {
>>>>>>>>>>>>>>>>                // do something
>>>>>>>>>>>>>>>>           }
>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>> instead of
>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>> +        boolean isScrollPanePresent = true;
>>>>>>>>>>>>>>>> +        if (some expression) {
>>>>>>>>>>>>>>>> +            isScrollPanePresent = false;
>>>>>>>>>>>>>>>> +        }
>>>>>>>>>>>>>>>> +        if (isScrollPanePresent) {
>>>>>>>>>>>>>>>>                // do something
>>>>>>>>>>>>>>>>           }
>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>  In your case it is even better just to update the rMax 
>>>>>>>>>>>>>>>> according to is scroll pane presence.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>> Alexandr.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>     Thanks,
>>>>>>>>>>>>>>>>>>    Alexandr.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>    Thanks,
>>>>>>>>>>>>>>>>>>>>    Alexandr.
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>>>>>>>> On 9/15/2015 10:55 AM, prasanta sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> On 9/14/2015 12:48 PM, prasanta sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> On 9/11/2015 2:20 PM, prasanta sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> On 9/10/2015 4:48 PM, Sergey Bylokhov wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> On 10.09.15 13:35, prasanta sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> On 9/10/2015 3:42 PM, Sergey Bylokhov wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>> On 10.09.15 9:36, prasanta sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Please review the modified webrev which 
>>>>>>>>>>>>>>>>>>>>>>>>>>>> solves this artifacts.
>>>>>>>>>>>>>>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8081491/webrev.05/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>> What will happen if the table will be added 
>>>>>>>>>>>>>>>>>>>>>>>>>>> to the jpanel and the
>>>>>>>>>>>>>>>>>>>>>>>>>>> jpanel will be added to JScrollPane? Will 
>>>>>>>>>>>>>>>>>>>>>>>>>>> this configuration work as
>>>>>>>>>>>>>>>>>>>>>>>>>>> expected?
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> Please review which takes care of this 
>>>>>>>>>>>>>>>>>>>>>>> configuration
>>>>>>>>>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8081491/webrev.06/
>>>>>>>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> Gentle reminder for review request.
>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>> I also added a reg test for this regression 
>>>>>>>>>>>>>>>>>>>>>>>>>>>> but I am not able to create
>>>>>>>>>>>>>>>>>>>>>>>>>>>> a automated testcase to deal with the 
>>>>>>>>>>>>>>>>>>>>>>>>>>>> scrolling artifacts, so I added a
>>>>>>>>>>>>>>>>>>>>>>>>>>>> manual test.
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>> I suggest to try to automate it somehow. 
>>>>>>>>>>>>>>>>>>>>>>>>>>> Probably make some small
>>>>>>>>>>>>>>>>>>>>>>>>>>> unity test? Or using robot?
>>>>>>>>>>>>>>>>>>>>>>>>>> Even with Robot or unity test, how will I 
>>>>>>>>>>>>>>>>>>>>>>>>>> check the artifact has
>>>>>>>>>>>>>>>>>>>>>>>>>> happened? THis is a visual problem. I do not 
>>>>>>>>>>>>>>>>>>>>>>>>>> know how to test it
>>>>>>>>>>>>>>>>>>>>>>>>>> automatically.
>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>> In case of unit test you can check the return 
>>>>>>>>>>>>>>>>>>>>>>>>> value of some methods or the state of the 
>>>>>>>>>>>>>>>>>>>>>>>>> objects which are cause the artifacts. For 
>>>>>>>>>>>>>>>>>>>>>>>>> test with robot, you can fill all rows of 
>>>>>>>>>>>>>>>>>>>>>>>>> table in some color, then scroll it, and check 
>>>>>>>>>>>>>>>>>>>>>>>>> the color of the table using 
>>>>>>>>>>>>>>>>>>>>>>>>> robot.getPixelColor().
>>>>>>>>>>>>>>>>>>>>>>>> Thanks Sergey for the suggestion. I am trying 
>>>>>>>>>>>>>>>>>>>>>>>> to use Robot to test this artifacts. But when I 
>>>>>>>>>>>>>>>>>>>>>>>> use Robot to scroll up/down, the artifacts are 
>>>>>>>>>>>>>>>>>>>>>>>> not seen even when the scrollbar moved up and 
>>>>>>>>>>>>>>>>>>>>>>>> down. But manually if I scroll, I can see the 
>>>>>>>>>>>>>>>>>>>>>>>> artifacts. Can you please let me know if the 
>>>>>>>>>>>>>>>>>>>>>>>> attached testcase is missing something?
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> --Prasanta
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 9/8/2015 4:27 PM, Sergey Bylokhov wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi, Prasanta.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Just before the push of this fix I made 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> small pit, and found a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> regression. Please run the SwingSet2, open 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> JTable demo, and scroll the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> table. You will see some artifacts.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 08.09.15 13:13, prasanta sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks Sergey for pointing this.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I have taken care of this plus formatting 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> in for loop.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Please have a look
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8081491/webrev.04/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 9/8/2015 3:32 PM, Sergey Bylokhov wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi, Prasanta.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A few small notes:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  - BasicTableUI: typo "1850 // otherwise 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1 extra rows are ptinted"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  - ImageableAreaTest: the test 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instructions have copy pasted numbers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1/2/2/2 etc.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 08.09.15 12:43, prasanta sadhukhan 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks for your review.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   I need +1 for this. Alexander 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Z/Sergey, can you please approve
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> fix?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 9/8/2015 3:02 PM, Alexander 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Scherbatiy wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   The fix looks good to me.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   But you need to properly format 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> spaces in the 'for' loop on line
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TablePrintable:410 before the push.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   Thanks,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   Alexandr.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 9/8/2015 12:26 PM, prasanta 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 9/7/2015 5:50 PM, Alexander 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Scherbatiy wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 9/7/2015 9:23 AM, prasanta 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I guess it will be same but anyways 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> have modified to use
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> visibleBounds.getLocation() to be 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> on safeside as we are dealing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> with visible region for this fix.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Please review the updated webrev
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8081491/webrev.02/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TablePrintable:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      - Could the rMin be equal to -1?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> This should never happen so long 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bounds intersects the clip but as
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> done in BasicTableUI, I have added 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the check just in case
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - Line: 406 int rowHeight = 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (rMax-rMin) * table.getRowHeight();
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>        Rows can have different 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> height in the table. Could you
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> also
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> add a test for the this case too?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Added test for this case too.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Please review this webrev:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8081491/webrev.03/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>     Alexandr.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 9/4/2015 8:57 PM, Alexander 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Scherbatiy wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  Could the clip.getLocation() be 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> differ from them
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> visibleBounds.getLocation()?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  Thanks,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  Alexandr.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 9/4/2015 3:32 PM, prasanta 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Any reviewers for this please?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 9/2/2015 5:06 PM, prasanta 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Can this fix be reviewed?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 8/28/2015 4:48 PM, prasanta 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 8/26/2015 6:24 PM, Alexander 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Scherbatiy wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 8/25/2015 1:51 PM, prasanta 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 8/25/2015 3:53 PM, 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Alexander Scherbatiy wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 8/24/2015 2:23 PM, 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> prasanta sadhukhan wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi All,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bug: 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8081491
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> webrev:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8081491/webrev.00/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> This seems to be a hidden 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> JTable bug in which if the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> user
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> does not call pack() or set 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a ScrollPane() for JTable
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rather use JFrame.setSize() 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> smaller than table size
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> then it
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> was found that some of the 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rows which cannot be
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> fitted in
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1st page cannot get printed 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> on 2nd and subsequent pages
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> resulting in blank cells to 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> be printed after 1st page.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> It was found that 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> BasicTableUI checks for table
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bounds to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> fall within the clip and if 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> they do not intersect, it
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bails
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> out from painting the table 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> cells.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      What is the reason that 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the graphics clip does not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> intersect the table bounds 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> during printing in the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> provided
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> test case?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The testcase does 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> table.setSize(600,800) 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whereas frame
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> setSize is 400,600 .
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> For 1st page, the clip was 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 0,0,384,752 and bounds was
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 0,0,384,562 so they intersect 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and there's no problem in
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> printing the rows in 1st page.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> After the 1st page is 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> printed, the clip is set to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 0,752,384,48 since we have 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> printed the rows that we can
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> fit
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> in 1st page and the next set 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of rows are to be printed
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> while
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bounds remains at 0,0,384,562 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> because JComponent
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> getBounds is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> returning the visible frame 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bounds which did not change.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>     The 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> !bounds.intersects(clip) check 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> prevents printing of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> table rows which are not 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> visible on the frame.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>     It seems that the issue is 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that extra rows which are
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> shown in the frame are printed 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> on the first page.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>     It means that the printed 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rows and columns should be
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculated for the table 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bounds and clip intersection.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>     The test can be updated to 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mention that only visible
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> part
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of the table should be printed.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Have modified the code to print 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> only the rows that are
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> displayed on console. Also 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> updated the test to mention the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> same. Please review the updated 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> webrev.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8081491/webrev.01/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    Alexandr.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Please, also mention in the 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> email title JDK version for
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which the fix is provided.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Done
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    Alexandr.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I devised a solution 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whereby it will not bail 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> out till
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> either rows or columns are 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> still left to be printed on
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> subsequent pages . Please 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> review and let me know if
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it's ok.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
> 
 

 

 

Reply via email to