-
Bug
-
Resolution: Done
-
Major
-
5.3.15, 5.4.5
-
None
-
False
-
-
False
-
-
A Keycloak user encountered the following issue on startup:
2025-03-20 18:19:09,919 ERROR [org.infinispan.CONFIG] (ForkJoinPool.commonPool-worker-1) ISPN000660: DefaultCacheManager start failed, stopping any running components: org.infinispan.commons.CacheConfigurationException: ISPN000659: Component ComponentWrapper{name=org.infinispan.remoting.transport.Transport, instance=org.infinispan.remoting.transport.jgroups.JGroupsTransport@a30d5ae, status=FAILED} failed to start
at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:584)
at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:634)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:598)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576)
at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807)
at org.infinispan.factories.GlobalComponentRegistry.preStart(GlobalComponentRegistry.java:307)
at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:241)
at org.infinispan.manager.DefaultCacheManager.internalStart(DefaultCacheManager.java:778)
at org.infinispan.manager.DefaultCacheManager.start(DefaultCacheManager.java:746)
at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:412)
at org.keycloak.quarkus.runtime.storage.infinispan.CacheManagerFactory.startEmbeddedCacheManager(CacheManagerFactory.java:366)
at org.keycloak.quarkus.runtime.storage.infinispan.CacheManagerFactory.lambda$new$0(CacheManagerFactory.java:123)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
Caused by: java.lang.ExceptionInInitializerError
at org.jgroups.util.Util.virtualThreadsAvailable(Util.java:213)
at org.jgroups.protocols.TP.init(TP.java:729)
at org.jgroups.protocols.BasicTCP.init(BasicTCP.java:130)
at org.jgroups.stack.ProtocolStack.initProtocolStack(ProtocolStack.java:807)
at org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:443)
at org.jgroups.JChannel.init(JChannel.java:916)
at org.jgroups.JChannel.<init>(JChannel.java:128)
at org.infinispan.remoting.transport.jgroups.FileJGroupsChannelConfigurator.createChannel(FileJGroupsChannelConfigurator.java:49)
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.channelFromConfigurator(JGroupsTransport.java:747)
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.buildChannel(JGroupsTransport.java:714)
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.initChannel(JGroupsTransport.java:467)
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.start(JGroupsTransport.java:451)
at org.infinispan.remoting.transport.jgroups.CorePackageImpl$2.start(CorePackageImpl.java:65)
at org.infinispan.remoting.transport.jgroups.CorePackageImpl$2.start(CorePackageImpl.java:50)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:616)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:607)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576)
... 19 more
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.ClassLoader.loadClass(String)" because "loader" is null
at org.jgroups.util.Util.loadClass(Util.java:3333)
at org.jgroups.util.Util.loadClass(Util.java:3315)
at org.jgroups.util.ThreadCreator.getOfVirtualClass(ThreadCreator.java:64)
at org.jgroups.util.ThreadCreator.<clinit>(ThreadCreator.java:28)
... 36 more
The issue is that the current code does not take into account that Thread.currentThread().getContextClassLoader() can return null.