<Swing Dev> <AWT Dev> Review request #4: 6852592 (invalidate() must be smarter) - approved

Alexander Potochkin Alexander.Potochkin at Sun.COM
Tue Oct 6 16:23:39 UTC 2009


Hello Anthony

I looked through the Swing code and didn't find any problems,
if all relevant tests passed I approve

Thanks
alexp

P.S.
Container.descendUnconditionallyWhenValidating looks fishy indeed,
it's better to get rig of it indeed


> Hi Artem,
> 
> On 10/01/2009 12:24 PM, Artem Ananiev wrote:
>> I've quickly looked through the changes, the fix looks fine with the 
>> exception of using double-check idiom in Container.validate() - I told 
>> you about that the other day.
> 
> To make sure we don't get messed up when discovering potential 
> regressions, I've just filed a separate CR 6887249 (Get rid of 
> double-check for isValid() idiom in validate() methods) to fix the issue 
> later. Thanks for the suggestion.
> 
> -- 
> best regards,
> Anthony
> 
>>
>> Thanks,
>>
>> Artem
>>
>> Anthony Petrov wrote:
>>> It's been a long time since we discussed the issue. Now is the time 
>>> for revival.
>>>
>>> Last time we came across a failing test [1] that had a JApplet 
>>> embedded in a JFrame. The frame was expected to be validated upon 
>>> showing. However, the components in the JApplet were not validated, 
>>> since the JApplet itself was marked valid, but the invalidate() 
>>> requests from the children of the applet stopped on the RootPane of 
>>> the JApplet because it was a validate root.
>>>
>>> Later we found out a possible solution for that problem [2]: the 
>>> show() (as well as the pack()) should validate the whole component 
>>> hierarchy unconditionally.
>>>
>>> So, here's the fix with this solution implemented. Please review:
>>>
>>> http://cr.openjdk.java.net/~anthony/7-23-invalidate-6852592.3/
>>>
>>> The fix has been tested quite thoroughly: all sort of related 
>>> automatic tests for both Swing and AWT areas have been run (including 
>>> layout-related tests, bare (J)Component and Container-related tests, 
>>> and some other.) All manual layout-related tests from AWT and Swing 
>>> have also been run and passed. Mixing-related regression tests pass 
>>> as well.
>>>
>>> Please note that I've also changed the synopsis of the change request 
>>> by replacing revalidate() with invalidate() because the fix actually 
>>> affects the invalidate() method only.
>>>
>>> [1] 
>>> http://mail.openjdk.java.net/pipermail/awt-dev/2009-August/000831.html
>>>
>>> [2] 
>>> http://mail.openjdk.java.net/pipermail/awt-dev/2009-August/000835.html
>>>
>>> -- 
>>> best regards,
>>> Anthony




More information about the swing-dev mailing list