Dan Berindei created ISPN-9561:
----------------------------------
Summary: GlobalConfiguration classloader reference should be strong
Key: ISPN-9561
URL:
https://issues.jboss.org/browse/ISPN-9561
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 9.4.0.CR3
Reporter: Dan Berindei
Assignee: Dan Berindei
Fix For: 9.4.0.Final
{{GlobalConfiguration}} uses a {{WeakReference}} to store its classloader, in order to
allow {{JCachingProvider}} to use a {{WeakHashMap<ClassLoader,
DefaultCacheManager>}}.
The weak reference works fine when the classloader is the application classloader, but if
the application (or the server, in our case) creates a {{ClassLoader}} instance just for
the Infinispan configuration, that classloader can be garbage collected while the cache
manager is starting. That is exactly what happens during server startup sometimes, making
{{GlobalComponentRegistry}} use the TCCL for module initialization and ignoring all the
non-core modules.
We can still use a {{WeakClassLoader}} adapter that wraps a
{{WeakReference<ClassLoader>}} for {{JCachingProvider}}.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)