<Swing Dev> RFR 6542439:Significant memory leak in BasicComboBoxUI and MetalComboBoxButton

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Thu Aug 27 08:33:59 UTC 2020


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
>
>


More information about the swing-dev mailing list