Hi Jörg You could wrap your ResourceResolver using a custom ResourceResolverWrapper that could hold your state. IIRC Sling's ResourceResolverWrapper does a "deep wrap", i.e. resources obtained from it are also wrapped and return the wrapped RR via their Resource#getResourceResolver() method.
Inside your custom wrapper you can store whatever state you want, and you may clean it up once ResourceResolver#close() is called. Of course this requires you to be able to wrap the RR before calling the API in question. Regards Julian On Mon, Oct 18, 2021 at 2:09 PM Paul Bjorkstrand <[email protected]> wrote: > > My point stands, there is no API provided. The thread local cleaner that is > used, while used commonly in many applications (I am 99% sure I saw that > exact code or very similar in a SO while looking for such an API), is still > dependent on internal implementation details of thread locals > (non-public/inaccessible fields). This is no different than depending on > Unsafe. As you mentioned, it is much harder in later versions of Java > because implementation details are much more encapsulated. > > -Paul > > > On Mon, Oct 18, 2021 at 4:24 AM Robert Munteanu <[email protected]> wrote: > > > Hi, > > > > On Sun, 2021-10-17 at 14:26 -0500, Paul Bjorkstrand wrote: > > > As far as I understand, thread locals' storage is an implementation > > > detail > > > in the JVM. There isn't an API to clear all/arbitrary thread locals. > > > Thread > > > pools, or applications that use thread pools, need to provide hooks to > > > do > > > that, so that code can do its own cleanup. This is exactly what the > > > request listener that Carsten mentioned does. > > > > Sling's thread pool actually cleans up thread locals after execution > > [1]. It's not yet fixed for Java 17 though [2]. > > > > [1]: > > > > https://github.com/apache/sling-org-apache-sling-commons-threads/blob/org.apache.sling.commons.threads-3.2.22/src/main/java/org/apache/sling/commons/threads/impl/ThreadPoolExecutorCleaningThreadLocals.java > > [2]: https://issues.apache.org/jira/browse/SLING-10831 > > > > Thanks, > > Robert > >
