<Swing Dev> [9] Review Request: 8144166 [macosx] Test java/awt/Component/CompEventOnHiddenComponent/CompEventOnHiddenComponent.java fails

Alexander Scherbatiy alexandr.scherbatiy at oracle.com
Thu Mar 31 18:14:55 UTC 2016


The fix looks good to me.

Thanks,
Alexandr.

On 11/03/16 00:35, Sergey Bylokhov wrote:
> Hello.
> Please review the fix for jdk9.
>
> Problem description:
>  - CompEventOnHiddenComponent test was written not according the 
> specification but according an assumption(performance related) - "the 
> component should not post move/resize events if no listeners were 
> registered". The test creates a JInternalFrame and adds 
> ComponentListener to it. No events should come to the listeners, 
> because the frame is not resized or moved by the test(except initial 
> layout). Initial move/resize events are skipped usually, because 
> during initialization there are no any listeners. But this is not the 
> case in Aqua. AquaInternalFrameDockIconUI adds a listeners to the 
> JInternalFrame during initialization -> move/resize events are posted 
> -> the test adds own listeners -> events dispatched -> the test 
> listeners called -> boom.
>
> According above description the bug could be closed as not a defect. 
> But I found another related problem in the AquaInternalFrameDockIconUI.
>
>  - These component listeners in AquaInternalFrameDockIconUI are used 
> to maintain the cache of image for the dock(the icon which is used 
> when the internal frame is minimized). The logic is next:
>    * Before the frame will be minimized it draws to the special 
> ImageIcon which will be used as an icon for the dock.
>    * After the frame is minimized and dock is showing the saved image 
> will be used(and placed to the cache)
>    * If the frame will be resized/show the cache will be reset.
>    * When in the next time the same frame will be minimized the cached 
> image will be used.
>
> The bug is in the last step. When the frame will be minimized in the 
> second time, it can have another content. But minimized icon will show 
> the miniature from the previous minimization. Note this is the only 
> step where the cache is used.
>
> Solution:
> As a solution all cache related stuff were dropped. The new test was 
> added.
>
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8144166
> Webrev can be found at: 
> http://cr.openjdk.java.net/~serb/8144166/webrev.01
>




More information about the swing-dev mailing list