diff --git a/scm-webapp/src/main/java/sonia/scm/cache/EhCacheManager.java b/scm-webapp/src/main/java/sonia/scm/cache/EhCacheManager.java index 70d068335d..0342ecf32b 100644 --- a/scm-webapp/src/main/java/sonia/scm/cache/EhCacheManager.java +++ b/scm-webapp/src/main/java/sonia/scm/cache/EhCacheManager.java @@ -125,7 +125,8 @@ public class EhCacheManager implements CacheManager * @return */ @Override - public Cache getCache(Class key, Class value, String name) + public synchronized Cache getCache(Class key, Class value, + String name) { net.sf.ehcache.Cache c = cacheManager.getCache(name); diff --git a/scm-webapp/src/main/java/sonia/scm/cache/GuavaCacheManager.java b/scm-webapp/src/main/java/sonia/scm/cache/GuavaCacheManager.java index cdc9fd958d..c0a5a19914 100644 --- a/scm-webapp/src/main/java/sonia/scm/cache/GuavaCacheManager.java +++ b/scm-webapp/src/main/java/sonia/scm/cache/GuavaCacheManager.java @@ -124,8 +124,8 @@ public class GuavaCacheManager implements CacheManager * @return */ @Override - public GuavaCache getCache(Class key, Class value, - String name) + public synchronized GuavaCache getCache(Class key, + Class value, String name) { logger.trace("try to retrieve cache {}", name); @@ -146,7 +146,7 @@ public class GuavaCacheManager implements CacheManager //~--- fields --------------------------------------------------------------- /** Field description */ - private Map cacheMap = Maps.newConcurrentMap(); + private volatile Map cacheMap = Maps.newHashMap(); /** Field description */ private GuavaCacheConfiguration defaultConfiguration;