On Wed, 7 Jan 2026 01:48:31 GMT, Sergey Bylokhov <[email protected]> wrote:

>> All uses of this are stored in static final fields and typically it is a 
>> singleton or fixed size list/map
>> I don't see anything that will grow without bounds, and SoftReference isn't 
>> a great way to manage
>> such cases anyway.
>> 
>> So I don't see any problem with doing away with SoftReference.
>> If we keep it, I think it is just more overhead.
>> 
>> And I don't see any way that isn't tricky and messy to do this whilst still 
>> allowing value types.
>> It might be easier once Valhalla actually lands so we could check if it is 
>> an identity type.
>> 
>> So if we keep the reference then a point fix of the Boolean case seems the 
>> practical solution.
>> There's no great value to keeping a SoftRef to a Boolean so we can do 
>> without it.
>> But it meant I had to look for any other similar cases by hand. I didn't 
>> find any.
>> 
>> Doing this means no changes to the existing RecyclableSingleton class are 
>> necessary to resolve the specific issue.
>> But I think we want to soon enough get rid of AppContext anyway, so I am 
>> moving the ref usage
>> directly into RecyclableSingleton and keeping the deletion of the method 
>> from AppContext.
>> The ImageCache doesn't need it. The cached images are managed by the cache 
>> code itself.
>> 
>> The most recent commit implements the above but I don't see a problem with 
>> pushing without that commit.
>
> That looks fine. What about LazyConstant? It seems to have similar 
> functionality to the new LazySingleton, aside from the name. Personally, I do 
> not think LazyConstant is a great name....

You mean the new incarnation of StableValue ?
That crossed my mind, but I don't think this case is important enough to bring 
in that preview feature.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22868#discussion_r2669956234

Reply via email to