diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/ResourceHandlerRegistration.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/ResourceHandlerRegistration.java index ae32369f28..2e8dcc612e 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/ResourceHandlerRegistration.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/ResourceHandlerRegistration.java @@ -141,7 +141,6 @@ public class ResourceHandlerRegistration { * Returns a {@link ResourceHttpRequestHandler} instance. */ protected ResourceHttpRequestHandler getRequestHandler() { - Assert.isTrue(!CollectionUtils.isEmpty(locations), "At least one location is required for resource handling."); ResourceHttpRequestHandler handler = new ResourceHttpRequestHandler(); if (this.resourceChainRegistration != null) { handler.setResourceResolvers(this.resourceChainRegistration.getResourceResolvers()); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java index 81659155af..d147132a50 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java @@ -86,11 +86,11 @@ public class ResourceHttpRequestHandler extends WebContentGenerator implements H private static final String CONTENT_ENCODING = "Content-Encoding"; - private List locations; + private final List locations = new ArrayList(4); - private final List resourceResolvers = new ArrayList(); + private final List resourceResolvers = new ArrayList(4); - private final List resourceTransformers = new ArrayList(); + private final List resourceTransformers = new ArrayList(4); public ResourceHttpRequestHandler() { @@ -105,7 +105,8 @@ public class ResourceHttpRequestHandler extends WebContentGenerator implements H */ public void setLocations(List locations) { Assert.notEmpty(locations, "Locations list must not be empty"); - this.locations = locations; + this.locations.clear(); + this.locations.addAll(locations); } public List getLocations() { @@ -154,7 +155,8 @@ public class ResourceHttpRequestHandler extends WebContentGenerator implements H @Override public void afterPropertiesSet() throws Exception { if (logger.isWarnEnabled() && CollectionUtils.isEmpty(this.locations)) { - logger.warn("Locations list is empty. No resources will be served"); + logger.warn("Locations list is empty. No resources will be served unless a " + + "custom ResourceResolver is configured as an alternative to PathResourceResolver."); } }