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

Artem Ananiev Artem.Ananiev at Sun.COM
Thu Oct 1 08:24:27 UTC 2009


Hi, Anthony,

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.

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