diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java index d1ae54b63dd..fac0d74305a 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java @@ -103,7 +103,7 @@ public abstract class CacheAspectSupport implements InitializingBean { * @param cacheOperationSources must not be {@code null} */ public void setCacheOperationSources(CacheOperationSource... cacheOperationSources) { - Assert.notEmpty(cacheOperationSources); + Assert.notEmpty(cacheOperationSources, "At least 1 CacheOperationSource needs to be specified"); this.cacheOperationSource = (cacheOperationSources.length > 1 ? new CompositeCacheOperationSource(cacheOperationSources) : cacheOperationSources[0]); } @@ -131,8 +131,8 @@ public abstract class CacheAspectSupport implements InitializingBean { } public void afterPropertiesSet() { - Assert.state(this.cacheManager != null, "'cacheManager' is required"); - Assert.state(this.cacheOperationSource != null, "The 'cacheOperationSources' property is required: " + + Assert.state(this.cacheManager != null, "Property 'cacheManager' is required"); + Assert.state(this.cacheOperationSource != null, "Property 'cacheOperationSources' is required: " + "If there are no cacheable methods, then don't use a cache aspect."); this.initialized = true; } @@ -157,7 +157,9 @@ public abstract class CacheAspectSupport implements InitializingBean { Collection caches = new ArrayList(cacheNames.size()); for (String cacheName : cacheNames) { Cache cache = this.cacheManager.getCache(cacheName); - Assert.notNull(cache, "Cannot find cache named '" + cacheName + "' for " + operation); + if (cache == null) { + throw new IllegalArgumentException("Cannot find cache named '" + cacheName + "' for " + operation); + } caches.add(cache); } return caches; diff --git a/spring-context/src/test/java/org/springframework/cache/CacheReproTests.java b/spring-context/src/test/java/org/springframework/cache/CacheReproTests.java index 256a3f73f49..d60c14c170b 100644 --- a/spring-context/src/test/java/org/springframework/cache/CacheReproTests.java +++ b/spring-context/src/test/java/org/springframework/cache/CacheReproTests.java @@ -66,9 +66,9 @@ public class CacheReproTests { } @Test - public void spr11595GetSimple() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Spr11595Config.class); - Spr11595Service bean = context.getBean(Spr11595Service.class); + public void spr11592GetSimple() { + AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Spr11592Config.class); + Spr11592Service bean = context.getBean(Spr11592Service.class); Cache cache = context.getBean("cache", Cache.class); String key = "1"; @@ -83,9 +83,9 @@ public class CacheReproTests { } @Test - public void spr11595GetNeverCache(){ - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Spr11595Config.class); - Spr11595Service bean = context.getBean(Spr11595Service.class); + public void spr11592GetNeverCache(){ + AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Spr11592Config.class); + Spr11592Service bean = context.getBean(Spr11592Service.class); Cache cache = context.getBean("cache", Cache.class); String key = "1"; @@ -179,7 +179,7 @@ public class CacheReproTests { @Configuration @EnableCaching - public static class Spr11595Config { + public static class Spr11592Config { @Bean public CacheManager cacheManager() { @@ -195,14 +195,13 @@ public class CacheReproTests { } @Bean - public Spr11595Service service() { - return new Spr11595Service(); + public Spr11592Service service() { + return new Spr11592Service(); } - } - public static class Spr11595Service { + public static class Spr11592Service { @Cacheable("cache") public Object getSimple(String key) {