RFR: 8341687: Memory leak in TableView after interacting with TableMenuButton

Marius Hanl mhanl at openjdk.org
Sat Nov 16 01:07:07 UTC 2024


There are multiple issues in the `TableMenu` logic that result in a memory leak.

The following problems are now fixed with this PR:
- The listener, that is registered to the `col.visibleProperty()` was not weak nor was it ever unregistered
   - The fix is to do pretty much the same that was already done with the `col.textProperty()` listener
- The `col.visibleProperty()` and `col.textProperty()` where added again and again and again to the column when the columns changed (which happens when toggling the visibility).
  - The fix is to add the listeners once - when the `MenuItem` is created. This way, when the `TableMenu` is rebuild and the cached `MenuItem` is used, the whole listener logic is not run again for the column

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

Commit messages:
 - 8341687: Memory leak in TableView after interacting with TableMenuButton

Changes: https://git.openjdk.org/jfx/pull/1640/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1640&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8341687
  Stats: 177 lines in 3 files changed: 159 ins; 14 del; 4 mod
  Patch: https://git.openjdk.org/jfx/pull/1640.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1640/head:pull/1640

PR: https://git.openjdk.org/jfx/pull/1640


More information about the openjfx-dev mailing list