EhCache/JCacheCacheManager needs to re-obtain runtime-added Cache reference for potential decoration

Issue: SPR-11407
This commit is contained in:
Juergen Hoeller 2014-02-14 21:58:48 +01:00
parent 14e5a02870
commit ef1748f694
2 changed files with 7 additions and 8 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2002-2013 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -89,12 +89,11 @@ public class EhCacheCacheManager extends AbstractTransactionSupportingCacheManag
public Cache getCache(String name) {
Cache cache = super.getCache(name);
if (cache == null) {
// check the EhCache cache again
// (in case the cache was added at runtime)
// Check the EhCache cache again (in case the cache was added at runtime)
Ehcache ehcache = getCacheManager().getEhcache(name);
if (ehcache != null) {
cache = new EhCacheCache(ehcache);
addCache(cache);
addCache(new EhCacheCache(ehcache));
cache = super.getCache(name); // potentially decorated
}
}
return cache;

View File

@ -1,5 +1,5 @@
/*
* Copyright 2002-2013 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -114,8 +114,8 @@ public class JCacheCacheManager extends AbstractTransactionSupportingCacheManage
// Check the JCache cache again (in case the cache was added at runtime)
javax.cache.Cache<Object, Object> jcache = getCacheManager().getCache(name);
if (jcache != null) {
cache = new JCacheCache(jcache, isAllowNullValues());
addCache(cache);
addCache(new JCacheCache(jcache, isAllowNullValues()));
cache = super.getCache(name); // potentially decorated
}
}
return cache;