Browse Source

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

Issue: SPR-11407
pull/464/head
Juergen Hoeller 12 years ago
parent
commit
ef1748f694
  1. 9
      spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheCacheManager.java
  2. 6
      spring-context-support/src/main/java/org/springframework/cache/jcache/JCacheCacheManager.java

9
spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheCacheManager.java vendored

@ -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"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with 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) { public Cache getCache(String name) {
Cache cache = super.getCache(name); Cache cache = super.getCache(name);
if (cache == null) { if (cache == null) {
// check the EhCache cache again // Check the EhCache cache again (in case the cache was added at runtime)
// (in case the cache was added at runtime)
Ehcache ehcache = getCacheManager().getEhcache(name); Ehcache ehcache = getCacheManager().getEhcache(name);
if (ehcache != null) { if (ehcache != null) {
cache = new EhCacheCache(ehcache); addCache(new EhCacheCache(ehcache));
addCache(cache); cache = super.getCache(name); // potentially decorated
} }
} }
return cache; return cache;

6
spring-context-support/src/main/java/org/springframework/cache/jcache/JCacheCacheManager.java vendored

@ -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"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with 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) // Check the JCache cache again (in case the cache was added at runtime)
javax.cache.Cache<Object, Object> jcache = getCacheManager().getCache(name); javax.cache.Cache<Object, Object> jcache = getCacheManager().getCache(name);
if (jcache != null) { if (jcache != null) {
cache = new JCacheCache(jcache, isAllowNullValues()); addCache(new JCacheCache(jcache, isAllowNullValues()));
addCache(cache); cache = super.getCache(name); // potentially decorated
} }
} }
return cache; return cache;

Loading…
Cancel
Save