On 8/6/2026 1:33 PM, Dan Smith wrote:
On Aug 3, 2026, at 8:34 AM, Kevin Rushforth <[email protected]> wrote:
First, some JavaFX UI controls APIs take a list of objects. JavaFX internally
creates a WeakReference to an individual object in some cases. This is tracked
by JDK-8387301 [2].
I was curious about the use cases, and how they might react to different
reference-clearing policies, so I dug into the code.
For TablePosition (#2 in JDK-8387301), turns out the WeakReference seems to go
unused: I can delete the private `itemRef` field and the package-access
`getItem` method, and everything still builds fine*.
(*Caveat that this is a complicated system, I’ve only built on macOS and
haven’t run any tests. Any reason to believe this is a platform-specific
dependency?)
I’ll keep looking at the other cases, see if they can provide any insight into
reference-clearing policies...
Thanks for looking into this. I know we don't rely on any reference
clearing behavior, but I haven't dug into how we are using those
WeakReferences in UI controls or whether we still need them at all
(unlike the WebView Java <--> JS bridge case where I know how and why we
are using them). It would be interesting to dig deeper to see if they
are needed at all for controls.
It looks like both the controls use and WebView use are going to be
fairly easy for us to fix in any case. I have a Draft PR out for the UI
controls weak references, if you would like to take a look and offer
feedback.
https://github.com/openjdk/jfx/pull/2250
-- Kevin