Add empty location check to ResourceHttpRequestHandler

ResourceHttpRequestHandler now implements InitializingBean and
checks for empty locations.

Issue: SPR-9186
This commit is contained in:
Rossen Stoyanchev
2012-05-01 17:08:19 -04:00
parent c52c78d020
commit 1eaaa9a446
2 changed files with 28 additions and 19 deletions

View File

@@ -25,6 +25,7 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
@@ -66,7 +67,7 @@ import org.springframework.web.servlet.support.WebContentGenerator;
* @author Juergen Hoeller * @author Juergen Hoeller
* @since 3.0.4 * @since 3.0.4
*/ */
public class ResourceHttpRequestHandler extends WebContentGenerator implements HttpRequestHandler { public class ResourceHttpRequestHandler extends WebContentGenerator implements HttpRequestHandler, InitializingBean {
private static final boolean jafPresent = private static final boolean jafPresent =
ClassUtils.isPresent("javax.activation.FileTypeMap", ResourceHttpRequestHandler.class.getClassLoader()); ClassUtils.isPresent("javax.activation.FileTypeMap", ResourceHttpRequestHandler.class.getClassLoader());
@@ -87,6 +88,9 @@ public class ResourceHttpRequestHandler extends WebContentGenerator implements H
this.locations = locations; this.locations = locations;
} }
public void afterPropertiesSet() throws Exception {
Assert.notEmpty(locations, "Locations list must not be empty");
}
/** /**
* Processes a resource request. * Processes a resource request.

View File

@@ -219,6 +219,11 @@ public class ResourceHttpRequestHandlerTests {
assertEquals(404, response.getStatus()); assertEquals(404, response.getStatus());
} }
@Test(expected=IllegalArgumentException.class)
public void locationsNotSet() throws Exception {
new ResourceHttpRequestHandler().afterPropertiesSet();
}
private static class TestServletContext extends MockServletContext { private static class TestServletContext extends MockServletContext {