Server to use a ManagedScheduledExecutorService for
ScheduledExecutorServices
-----------------------------------------------------------------------------
Key: ISPN-4388
URL:
https://issues.jboss.org/browse/ISPN-4388
Project: Infinispan
Issue Type: Bug
Reporter: William Burns
Assignee: William Burns
We use ScheduledExecutorServices for both the eviction and and replication queues.
However we currently wrap these in EmbeddedCacheManagerConfigurationService with regular
ManagedThreadPoolExecutorFactories, where as we should have a
ManagedScheduledThreadPoolExecutorFactory to wrap this which would produce the proper
type.
Without this it prevents configuring any kind of eviction or replication executor in the
server.
{code}
08:36:04,570 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-11) MSC00001:
Failed to start service jboss.infinispan.default.default:
org.jboss.msc.service.StartException in service jboss.infinispan.default.default: Failed
to start service
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767)
[jboss-msc-1.0.4.GA.jar:1.0.4.GA]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[rt.jar:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[rt.jar:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
Caused by: org.infinispan.commons.CacheException: Unable to invoke method public void
org.infinispan.eviction.impl.EvictionManagerImpl.start() on object of type
EvictionManagerImpl
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:170)
at
org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:869)
at
org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:638)
at
org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:627)
at
org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:530)
at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:216)
at org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:699)
at
org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:573)
at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:528)
at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:408)
at
org.infinispan.registry.impl.ClusterRegistryImpl.startRegistryCache(ClusterRegistryImpl.java:146)
at
org.infinispan.registry.impl.ClusterRegistryImpl.addListener(ClusterRegistryImpl.java:107)
at
org.infinispan.query.remote.ProtobufMetadataManager.ensureInit(ProtobufMetadataManager.java:65)
at
org.infinispan.query.remote.ProtobufMetadataManager.getSerializationContext(ProtobufMetadataManager.java:132)
at org.infinispan.query.remote.LifecycleManager.cacheStarting(LifecycleManager.java:114)
at
org.infinispan.factories.ComponentRegistry.notifyCacheStarting(ComponentRegistry.java:228)
at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:214)
at org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:699)
at
org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:573)
at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:528)
at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:408)
at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:422)
at
org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager.getCache(DefaultEmbeddedCacheManager.java:89)
at
org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager.getCache(DefaultEmbeddedCacheManager.java:80)
at
org.jboss.as.clustering.infinispan.subsystem.SecurityActions$5.run(SecurityActions.java:101)
at
org.jboss.as.clustering.infinispan.subsystem.SecurityActions$5.run(SecurityActions.java:98)
at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.7.0_51]
at
org.jboss.as.clustering.infinispan.subsystem.SecurityActions.startCache(SecurityActions.java:109)
at org.jboss.as.clustering.infinispan.subsystem.CacheService.start(CacheService.java:78)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
[jboss-msc-1.0.4.GA.jar:1.0.4.GA]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
[jboss-msc-1.0.4.GA.jar:1.0.4.GA]
... 3 more
Caused by: java.lang.ClassCastException:
org.jboss.as.clustering.concurrent.ManagedExecutorService cannot be cast to
java.util.concurrent.ScheduledExecutorService
at
org.infinispan.executors.LazyInitializingScheduledExecutorService.initIfNeeded(LazyInitializingScheduledExecutorService.java:40)
at
org.infinispan.executors.LazyInitializingScheduledExecutorService.scheduleWithFixedDelay(LazyInitializingScheduledExecutorService.java:146)
at org.infinispan.eviction.impl.EvictionManagerImpl.start(EvictionManagerImpl.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[rt.jar:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[rt.jar:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
at org.infinispan.
{code}
http://ci.infinispan.org/viewLog.html?buildId=8736&buildTypeId=bt8&am...