Thanks Sergey for your review. I have added AquaComboBoxButton also in the fix as the regression test fails for Aqua L&F.

http://cr.openjdk.java.net/~psadhukhan/6542439/webrev.1/

mach5 job link is in JBS.

Regards
Prasanta
On 22-Aug-20 8:27 AM, Sergey Bylokhov wrote:
Looks fine.

On 20.08.2020 06:54, Prasanta Sadhukhan wrote:
Hi All,

Please review a fix for an memory leak issue whereby the BasicComboBoxUI uses a CellRenderer pane to paint the renderer component retrieved via getListCellRenderer from the JList instance. CellRendererPane paint the component but it never removes it from its component hierarchy. JCombobox can produce dynamic renderer component instances in getListCellRenderer method. Each one of these instances will linger in memory because it remains in the component hierarchy of the CellRendererPane resulting in memory leak.

This is solved for JList in JDK-5044798 <https://bugs.openjdk.java.net/browse/JDK-5044798>.

The fix is now extended for BasicComboBoxUI where removeAll() of components is done after all painting is done.

The JDK-5044798 <https://bugs.openjdk.java.net/browse/JDK-5044798> regression testcase is used for JComboBox with all L&Fs and other *ComboBoxUIs are fixed similarly.

Bug: https://bugs.openjdk.java.net/browse/JDK-6542439

webrev: http://cr.openjdk.java.net/~psadhukhan/6542439/webrev.0/

Regards
Prasanta


Reply via email to