<Swing Dev> [9] Review Request: 8161664: Memory leak in com.apple.laf.AquaProgressBarUI: removed progress bar still referenced

Alexandr Scherbatiy alexandr.scherbatiy at oracle.com
Wed Jul 20 11:26:40 UTC 2016


The fix looks good to me.

Thanks,
Alexandr.

On 7/20/2016 11:37 AM, Robin Stevens wrote:
> Hello,
>
> please review this patch for issue JDK-8161664:
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8161664
> Patch: http://cr.openjdk.java.net/~rstevens/8161664/webrev.00/ 
> <http://cr.openjdk.java.net/%7Erstevens/8161664/webrev.00/>
>
>
> The problem is that in certain scenarios, the Timer in the Animator of 
> the AquaProgressBarUI does not get stopped when the progress bar is 
> removed from the Swing hierarchy.
>
> Several approaches were discussed in another thread 
> (http://mail.openjdk.java.net/pipermail/swing-dev/2016-July/006330.html).
> In the linked webrev, I opted to use the same approach as what is done 
> in the BasicProgressBarUI class: only start the timer when the 
> progress bar is displayable.
>
> To achieve this, I wrapped all calls to startAnimationTimer with an if 
> statement that checks the displayable state of the progress bar.
>
> There is one call to startAnimationTimer that is not adjusted. That 
> call is only triggered from the paint method, which in turn is only 
> triggered if the progress bar is displayable. As such, the if check 
> was not needed there (imo).
>
> The patch includes a test, which fails without the fix and succeeds 
> afterwards.
>
> Thanks,
>
> Robin




More information about the swing-dev mailing list