]
Dan Berindei updated ISPN-6590:
-------------------------------
Status: Pull Request Sent (was: Open)
Defining a cache with non-existent custom store should throw a better
exception
-------------------------------------------------------------------------------
Key: ISPN-6590
URL:
https://issues.jboss.org/browse/ISPN-6590
Project: Infinispan
Issue Type: Enhancement
Components: Loaders and Stores, Server
Affects Versions: 9.0.0.Alpha2
Reporter: Jakub Markos
Assignee: Vojtech Juranek
Priority: Minor
Fix For: 9.0.0.Alpha3
With current master, if you add this to the default standalone.xml configuration:
{code}<local-cache name="mycache" start="EAGER">
<store class="org.infinispan.persistence.None" shared="true"
passivation="false"/>
</local-cache>{code}
the server start hangs, and after 1 minute throws
{code}17:28:00,489 ERROR [org.jboss.as.clustering.infinispan] (MSC service thread 1-5)
Could not get Custom Cache Store metadata (org.infinispan.persistence.None) within given
time.: java.util.concurrent.TimeoutException
at java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1771)
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1915)
at
org.jboss.as.clustering.infinispan.cs.factory.DeployedCacheStoreFactory.createInstance(DeployedCacheStoreFactory.java:34)
at
org.infinispan.persistence.factory.CacheStoreFactoryRegistry.createInstance(CacheStoreFactoryRegistry.java:39)
at
org.infinispan.persistence.manager.PersistenceManagerImpl.createLoadersAndWriters(PersistenceManagerImpl.java:534)
at
org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:168)
at
org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:864)
at
org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:633)
at
org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:622)
at
org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:547)
at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:238)
at org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:891)
at
org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:634)
at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:585)
at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:451)
at
org.infinispan.manager.impl.AbstractDelegatingEmbeddedCacheManager.getCache(AbstractDelegatingEmbeddedCacheManager.java:133)
at org.infinispan.server.infinispan.SecurityActions$5.run(SecurityActions.java:131)
at org.infinispan.server.infinispan.SecurityActions$5.run(SecurityActions.java:128)
at org.infinispan.security.Security.doPrivileged(Security.java:76)
at
org.infinispan.server.infinispan.SecurityActions.doPrivileged(SecurityActions.java:64)
at
org.infinispan.server.infinispan.SecurityActions.startCache(SecurityActions.java:136)
at
org.jboss.as.clustering.infinispan.subsystem.CacheService.start(CacheService.java:86)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
{code}
I think we could throw something more specific.