paulk-asert opened a new pull request, #2818:
URL: https://github.com/apache/groovy/pull/2818

   A ClassValue association lives as long as its key class, and the common keys 
here are platform classes such as CompletableFuture, so the cached 
Groovy-loaded adapter pinned Groovy's class loader for the lifetime of the JVM 
(JDK-8136353 behavior, working as intended). The value is now held through a 
SoftReference: the association strongly reaches only java.base objects. A 
cleared reference is removed and recomputed once; should the fresh reference 
already be cleared, the answer comes from an uncached scan, so lookups 
terminate under any memory pressure. A NO_ADAPTER sentinel keeps unsupported 
types distinguishable from cleared references.
   
   The site deliberately stays on java.lang.ClassValue rather than routing 
through GroovyClassValueFactory: with soft values nothing strongly 
Groovy-loaded remains in the association, so there is nothing left for the 
groovy.use.classvalue escape hatch to release here.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to