-
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.