RFR: 6507038: Memory Leak in JTree / BasicTreeUI [v3]

Prasanta Sadhukhan psadhukhan at openjdk.org
Mon Jan 29 06:18:50 UTC 2024


On Wed, 24 Jan 2024 20:25:26 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:

>> Prasanta Sadhukhan has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Retain last component in rendererPane. Testcase added
>
> test/jdk/javax/swing/plaf/basic/BasicTreeUI/TreeCellRendererLeakTest.java line 62:
> 
>> 60:         }
>> 61: 
>> 62:         public void finalize( ) {
> 
> The `finalize` method is deprecated. Can't we use `Reference` API for this purpose?
> 
> Store a list of [`PhantomReference<JLabel>`](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/ref/PhantomReference.html). The size of the list is the number of `JLabel` objects created. Once you receive a reference via the [`ReferenceQueue`](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/ref/ReferenceQueue.html), remove it from the list.

I was not sure of the nuances of PhantomReference and ReferenceQueue, so have used WeakReference logic in the test which I think is more simpler..

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/17458#discussion_r1469118605


More information about the client-libs-dev mailing list