Spring Modules Cache (with Ehcache) doesn't work
------------------------------------------------

                 Key: CDV-795
                 URL: https://jira.terracotta.org/jira//browse/CDV-795
             Project: Community Development
          Issue Type: Bug
          Components: Integration Modules
    Affects Versions: 2.6.1, trunk-nightly
            Reporter: Alex Miller
            Assignee: Issue Review Board
         Attachments: caching.zip

Spring Modules Caching is a part of the Spring Modules project 
(https://springmodules.dev.java.net/) and provides a very simple way to wrap an 
interceptor around a bean and cache method results (based on parameter inputs 
as key).  They have several providers.  I tested this with the ehcache provider 
and it didn't work.  Seems like it should with a presumably small amount of 
work.

Attached zip has a small standalone sample project.  run.sh will run with no 
Terracotta.  run-tc.sh will run with Terracotta.  Requires: Spring, Spring 
Modules (for ehcache), commons-logging (for Spring), ehcache, Ehcache TIM, 
jsr107 (due to our requirement of it when using the Ehcache TIM).  

Error:

2008-06-25 01:26:56,706 WARN - The root expression 
'net.sf.ehcache.store.MemoryStoreEvictionPolicy.DSO' meant for the class 
'net.sf.ehcache.store.MemoryStoreEvictionPolicy' has no effect, make sure that 
it is a valid expression and that it is spelled correctly.
AW::WARNING - could not load class [org/apache/commons/collections/LRUMap] as a 
resource in loader [EMAIL PROTECTED]
Jun 25, 2008 1:26:57 AM 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry 
destroySingletons
INFO: Destroying singletons in [EMAIL PROTECTED]: defining beans 
[slowSquarer,main,cacheProvider,cacheManager,cachedSquarer]; root of factory 
hierarchy
Exception in thread "main" 
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'main' defined in class path resource [app.xml]: Cannot resolve 
reference to bean 'cachedSquarer' while setting bean property 'squarer'; nested 
exception is org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'cachedSquarer': Cannot resolve reference to bean 
'cacheProvider' while setting bean property 'cacheProviderFacade'; nested 
exception is org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'cacheProvider': Cannot resolve reference to bean 
'cacheManager' while setting bean property 'cacheManager'; nested exception is 
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'cacheManager': Invocation of init method failed; nested exception is 
java.lang.NoSuchFieldError: DSO
Caused by: org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'cachedSquarer': Cannot resolve reference to bean 
'cacheProvider' while setting bean property 'cacheProviderFacade'; nested 
exception is org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'cacheProvider': Cannot resolve reference to bean 
'cacheManager' while setting bean property 'cacheManager'; nested exception is 
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'cacheManager': Invocation of init method failed; nested exception is 
java.lang.NoSuchFieldError: DSO
Caused by: org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'cacheProvider': Cannot resolve reference to bean 
'cacheManager' while setting bean property 'cacheManager'; nested exception is 
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'cacheManager': Invocation of init method failed; nested exception is 
java.lang.NoSuchFieldError: DSO
Caused by: org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'cacheManager': Invocation of init method failed; 
nested exception is java.lang.NoSuchFieldError: DSO
Caused by: java.lang.NoSuchFieldError: DSO
        at net.sf.ehcache.store.MemoryStore.create(MemoryStore.java)
        at net.sf.ehcache.Cache.initialise(Cache.java:505)
        at 
net.sf.ehcache.CacheManager.__tc_wrapped_addCacheNoCheck(CacheManager.java:634)
        at net.sf.ehcache.CacheManager.addCacheNoCheck(CacheManager.java)
        at 
net.sf.ehcache.CacheManager.addConfiguredCaches(CacheManager.java:348)
        at net.sf.ehcache.CacheManager.__tc_wrapped_init(CacheManager.java:227)
        at net.sf.ehcache.CacheManager.init(CacheManager.java)
        at net.sf.ehcache.CacheManager.<init>(CacheManager.java:194)
        at 
org.springframework.cache.ehcache.EhCacheManagerFactoryBean.afterPropertiesSet(EhCacheManagerFactoryBean.java:117)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1203)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.aw$original$_AW_$createBean$_AW_$org_springframework_beans_factory_support_AbstractAutowireCapableBeanFactory(AbstractAutowireCapableBeanFactory.java:427)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_1_674776996_662555251___AW_JoinPoint.proceed(Unknown
 Source)
        at com.tcspring.GetBeanProtocol.beanNameCflow(GetBeanProtocol.java:74)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_1_674776996_662555251___AW_JoinPoint.proceed(Unknown
 Source)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_1_674776996_662555251___AW_JoinPoint.invoke(Unknown
 Source)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
        at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:267)
        at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.aw$INVOKE$_AW_$populateBean_764810460org_springframework_beans_factory_support_AbstractAutowireCapableBeanFactory(AbstractAutowireCapableBeanFactory.java)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_2_674776996__798057117_599532254___AW_JoinPoint.invoke(Unknown
 Source)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.aw$original$_AW_$createBean$_AW_$org_springframework_beans_factory_support_AbstractAutowireCapableBeanFactory(AbstractAutowireCapableBeanFactory.java:423)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_1_674776996_662555251___AW_JoinPoint.proceed(Unknown
 Source)
        at com.tcspring.GetBeanProtocol.beanNameCflow(GetBeanProtocol.java:74)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_1_674776996_662555251___AW_JoinPoint.proceed(Unknown
 Source)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_1_674776996_662555251___AW_JoinPoint.invoke(Unknown
 Source)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
        at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:267)
        at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.aw$INVOKE$_AW_$populateBean_764810460org_springframework_beans_factory_support_AbstractAutowireCapableBeanFactory(AbstractAutowireCapableBeanFactory.java)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_2_674776996__798057117_599532254___AW_JoinPoint.invoke(Unknown
 Source)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.aw$original$_AW_$createBean$_AW_$org_springframework_beans_factory_support_AbstractAutowireCapableBeanFactory(AbstractAutowireCapableBeanFactory.java:423)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_1_674776996_662555251___AW_JoinPoint.proceed(Unknown
 Source)
        at com.tcspring.GetBeanProtocol.beanNameCflow(GetBeanProtocol.java:74)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_1_674776996_662555251___AW_JoinPoint.proceed(Unknown
 Source)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_1_674776996_662555251___AW_JoinPoint.invoke(Unknown
 Source)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
        at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:267)
        at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.aw$INVOKE$_AW_$populateBean_764810460org_springframework_beans_factory_support_AbstractAutowireCapableBeanFactory(AbstractAutowireCapableBeanFactory.java)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_2_674776996__798057117_599532254___AW_JoinPoint.invoke(Unknown
 Source)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.aw$original$_AW_$createBean$_AW_$org_springframework_beans_factory_support_AbstractAutowireCapableBeanFactory(AbstractAutowireCapableBeanFactory.java:423)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_1_674776996_662555251___AW_JoinPoint.proceed(Unknown
 Source)
        at com.tcspring.GetBeanProtocol.beanNameCflow(GetBeanProtocol.java:74)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_1_674776996_662555251___AW_JoinPoint.proceed(Unknown
 Source)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory_1_674776996_662555251___AW_JoinPoint.invoke(Unknown
 Source)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
        at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
        at 
org.springframework.context.support.AbstractApplicationContext.aw$original$_AW_$refresh$_AW_$org_springframework_context_support_AbstractApplicationContext(AbstractApplicationContext.java:352)
        at 
org.springframework.context.support.AbstractApplicationContext_1__321890630_1085445456___AW_JoinPoint.invoke(Unknown
 Source)
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:122)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:66)
        at caching.Main.main(Main.java:30)


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://jira.terracotta.org/jira//secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
tc-dev mailing list
[email protected]
http://lists.terracotta.org/mailman/listinfo/tc-dev

Reply via email to