-
Bug
-
Resolution: Done
-
Major
-
9.4.0.Final
-
None
-
Sprint 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.
- causes
-
ISPN-9563 Intermittent NPE when starting the server
- Resolved