Ehcache shutdown causing an exception while running test suite
try to set shared property to false in EhCacheManagerFactoryBean
or EhCacheCacheManager
in the testing context.
Make a seperate cache config for tests only! and put scope "prototype"
@Configuration@EnableCachingpublic class EhCacheConfig { @Bean(name = "cacheManager") @Scope("prototype") public CacheManager getCacheManager() { return new EhCacheCacheManager(getEhCacheFactory().getObject()); } @Bean @Scope("prototype") public EhCacheManagerFactoryBean getEhCacheFactory() { EhCacheManagerFactoryBean factoryBean = new EhCacheManagerFactoryBean(); factoryBean.setConfigLocation(new ClassPathResource("ehcache.xml")); factoryBean.setShared(true); return factoryBean; }}
This issue occurs basically, Whenever you Cache shared among multiple applications. So try not to share your cache by setting shared property to false.
<spring:bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <spring:property name="configLocation" value="classpath:ehcache.xml" /> <spring:property name="shared" value="false" /> </spring:bean>
But on execution you will encounter
Another CacheManager with same name 'cacheManager' already exists in the same VM. IllegalStateException
To counter this we need to mention
<spring:property name="cacheManagerName" value="abc" />
I hope finally issue will be resolved.