On Tue, 11 Feb 2025 15:46:17 GMT, Andy Goryachev <ango...@openjdk.org> wrote:
> ## Root Cause > > Each time a `PaginationSkin.IndicatorButton` gets created it adds two > listeners (to the control's `styleClass` property and to the skin's > tooltipVisible property) via `ListenerHelper`. This was not detected by the > `SkinMemoryLeakTest` because all listeners got removed correctly upon skin > change. > > ## Solution > > Add a single listener to the control's `styleClass` property at the skin > level, and insert the call to the skin's `tooltipVisible` property both of > which iterate over indicator button to do their thing. The fix looks good to me. I tested it in a couple of different ways, and everything works as expected. With this fix and the fix for PR #1698 with the call to `System.gc()` removed, the test passes with no OOM. modules/javafx.controls/src/main/java/javafx/scene/control/skin/PaginationSkin.java line 201: > 199: > 200: navigation = new NavigationControl(); > 201: navigation.initializePageIndicators(); Minor: would it make sense to move this back to the`NavigationControl` constructor (at the end)? ------------- Marked as reviewed by kcr (Lead). PR Review: https://git.openjdk.org/jfx/pull/1705#pullrequestreview-2610114615 PR Review Comment: https://git.openjdk.org/jfx/pull/1705#discussion_r1951646931