]
Vojtech Juranek updated ISPN-7041:
----------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request:
Cloud cache store fails to create new container in OpenStack Swift
------------------------------------------------------------------
Key: ISPN-7041
URL:
https://issues.jboss.org/browse/ISPN-7041
Project: Infinispan
Issue Type: Bug
Components: Loaders and Stores
Affects Versions: 8.2.4.Final
Reporter: Vojtech Juranek
Assignee: Vojtech Juranek
When target container doesn't exists, cloud cache store will create it. However, on
OpenStack Swift it fails with
{noformat}
Exception in thread "main" org.infinispan.commons.CacheException: Unable to
invoke method public void
org.infinispan.persistence.manager.PersistenceManagerImpl.start() on object of type
PersistenceManagerImpl
at
org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:172)
at
org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:867)
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:890)
at
org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:636)
at
org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:587)
at
org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:452)
at
org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:438)
at org.infinispan.demo.SwiftCacheStore.main(SwiftCacheStore.java:20)
Caused by: org.infinispan.commons.CacheException: Unable to start cache loaders
at
org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:171)
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)
... 11 more
Caused by: java.lang.IllegalArgumentException: location must be null or {scope=REGION,
id=regionOne, description=regionOne, parent=openstack-swift}
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:148)
at
org.jclouds.openstack.swift.v1.blobstore.RegionScopedSwiftBlobStore.createContainerInLocation(RegionScopedSwiftBlobStore.java:147)
at
org.jclouds.openstack.swift.v1.blobstore.RegionScopedSwiftBlobStore.createContainerInLocation(RegionScopedSwiftBlobStore.java:142)
at org.infinispan.persistence.cloud.CloudStore.start(CloudStore.java:118)
at
org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:138)
... 16 more
{noformat}
As jclouds doesn't require region to be defined for Swift, probably best approach is
to allow users not to specify the region.