2016-08-23 18:49 GMT+02:00 Mark Struberg <[email protected]>: > No it's not _that_ easy. Simply using a WeakHashMap wont work. You also > have to wrap the value in a WeakReference. Otherwise the value in the Map > will prevent the CL from being garbage collected. A common pitfall I've > seen soooo often implemented the wrong way ;) > > Sounds like a good enough solution to me. JCache impl should be updated as well probably.
Who does want to drive this? I'm quite limited in time ATM so happy to let it be done but can help a bit in 1 or 2 weeks if needed. > LieGrue, > strub > > > > > > On Tuesday, 23 August 2016, 17:42, Clebert Suconic < > [email protected]> wrote: > > >> Not sure I get you there, commons clearly doesn't take in charge any > of > > that > >> but some containers can force some cleanup (not the other way around) > - at > >> least for beansutils for instance. > > > > With a WeakHashmap, the cache will be removed once the classLoader is > > released, right? Which is what I am trying to achieve here. The cache > > per classLoader. And Removing the classLoader once the references are > > > > released. > > > > > >> > >> Starting with a "leaking" WeakHashMap<ClassLoader, > > Provider> and see if > >> consumers are complaining. > >> > >> It would solve your issue and I can make it working in tomee for > instance > > > > > > Why it would matter? a WeakHashMap won't cause a leak in anyways. The > > ClassLoader is a weak references. Whenever Tomee released the > > classLoader the element would go away from the WeakHashMap. That's how > > weakHashMaps work, and that's the intent. > > >
