mercredi 14 décembre 2016

How to reload CacheManager after every test

I am using cacheManager in my spring-boot app.

And configured for my tests.

<bean id="cacheProvider" class="javax.cache.Caching" factory-method="getCachingProvider"/>
<bean id="cacheManager" factory-bean="cacheProvider" factory-method="getCacheManager"/>

In start my ehcache is not empty.

I have some logic problems when running all tests together. I want to reload my cacheManager after every test.

I tried to use @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)

but have an error

Caused by: java.lang.IllegalStateException: The CacheManager has been shut down. It can no longer be used.
at net.sf.ehcache.CacheManager.checkStatus(CacheManager.java:1623)
at net.sf.ehcache.CacheManager.getCacheNames(CacheManager.java:1611)
at org.ehcache.jcache.JCacheManager.refreshAllCaches(JCacheManager.java:325)
at org.ehcache.jcache.JCacheManager.getCache(JCacheManager.java:164)
at com.myapp.service.caching.EntityJCacheContainer.lambda$2(EntityJCacheContainer.java:115)
at com.myapp.service.caching.EntityJCacheContainer$$Lambda$72/1186361374.get(Unknown Source)
at com.myapp.service.caching.EntityJCacheContainer.getEntityCache(EntityJCacheContainer.java:120)
at com.myapp.service.caching.EntityStorageImpl.getEntities(EntityStorageImpl.java:119)
at com.myapp.service.DataServiceImpl.loadEntities(DataServiceImpl.java:70)
at com.myapp.service.ClassifierServiceImpl$FilterCriteriaVisitorImpl.visit(ClassifierServiceImpl.java:130)
at com.myapp.data.impl.FilterCriteriaBuilder$1.accept(FilterCriteriaBuilder.java:20)
at com.myapp.service.ClassifierServiceImpl.getClassifiers(ClassifierServiceImpl.java:70)
at com.myapp.controller.ClassifierManagerController.getClassifiers(ClassifierManagerController.java:159)
... 47 more

Any suggestions ?

Aucun commentaire:

Enregistrer un commentaire