Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-3399

Infinispan Server Configuration doesn't work properly for loader or store elements

XMLWordPrintable

      While working on ISPN-3350, I tried using a store and loader configuration value for my cache.

      <local-cache name="local">
          <store class="org.infinispan.loaders.file.SingleFileCacheStore"/>
      </local-cache>
      

      However when starting the server I am met with the following error and the cache is not started properly:

      08:23:25,112 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC00001: Failed to start service jboss.endpoint.hotrod.hotrod-connector: org.jboss.msc.service.StartException in service jboss.endpoint.hotrod.hotrod-connector: JDGS010004: Failed to start HotRodServer
      at org.infinispan.server.endpoint.subsystem.ProtocolServerService.start(ProtocolServerService.java:106)
      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]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_25]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_25]
      at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
      Caused by: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.loaders.manager.CacheLoaderManagerImpl.start() on object of type CacheLoaderManagerImpl
      at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:185)
      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:204)
      at org.infinispan.CacheImpl.start(CacheImpl.java:664)
      at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:666)
      at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:629)
      at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:522)
      at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:536)
      at org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager.getCache(DefaultEmbeddedCacheManager.java:118)
      at org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager.getCache(DefaultEmbeddedCacheManager.java:109)
      at org.infinispan.server.hotrod.HotRodServer$$anonfun$preStartCaches$1.apply(HotRodServer.scala:78)
      at org.infinispan.server.hotrod.HotRodServer$$anonfun$preStartCaches$1.apply(HotRodServer.scala:76)
      at scala.collection.Iterator$class.foreach(Iterator.scala:727)
      at scala.collection.AbstractIterator.foreach(Iterator.scala:1156)
      at org.infinispan.server.hotrod.HotRodServer.preStartCaches(HotRodServer.scala:76)
      at org.infinispan.server.hotrod.HotRodServer.startTransport(HotRodServer.scala:65)
      at org.infinispan.server.core.AbstractProtocolServer.start(AbstractProtocolServer.scala:39)
      at org.infinispan.server.hotrod.HotRodServer.start(HotRodServer.scala:51)
      at org.infinispan.server.hotrod.HotRodServer.start(HotRodServer.scala:27)
      at org.infinispan.server.endpoint.subsystem.ProtocolServerService.startProtocolServer(ProtocolServerService.java:123)
      at org.infinispan.server.endpoint.subsystem.ProtocolServerService.start(ProtocolServerService.java:100)
      ... 5 more
      Caused by: org.infinispan.commons.CacheException: Unable to start cache loaders
      at org.infinispan.loaders.manager.CacheLoaderManagerImpl.start(CacheLoaderManagerImpl.java:143)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_25]
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_25]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25]
      at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25]
      at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:183)
      ... 28 more
      Caused by: org.infinispan.commons.CacheConfigurationException: ISPN000249: The cache loader configuration org.infinispan.configuration.cache.LegacyStoreConfiguration does not specify the loader class using @ConfigurationFor
      at org.infinispan.loaders.manager.CacheLoaderManagerImpl.createCacheLoader(CacheLoaderManagerImpl.java:328)
      at org.infinispan.loaders.manager.CacheLoaderManagerImpl.createCacheLoader(CacheLoaderManagerImpl.java:316)
      at org.infinispan.loaders.manager.CacheLoaderManagerImpl.start(CacheLoaderManagerImpl.java:129)
      ... 33 more

      The error stems from the fact that the LegacyStoreConfiguration is used for caches that only provide the classname and not configuration. I am not certain if this is a fix solely in the server or would need some additional changes in Infinispan core. Also maybe there is some other configuration needed? If so the schema should have a requirement for the field or have it more clearly shown in exception.

              Unassigned Unassigned
              wburns@redhat.com Will Burns
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: