Skip to content

Commit 31a3119

Browse files
committed
Add FilterRegistration's defensively
Follow-up to d2225c, which broke Boot tests because the ServletContext can be the one of the embedded Servlet container if initializing a live server and as well as MockMvc (e.g. via `@AutoConfigureMockMvc`). See spring-projectsgh-33252
1 parent f1a99cd commit 31a3119

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

spring-test/src/main/java/org/springframework/test/web/servlet/setup/MockMvcFilterDecorator.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -111,19 +111,18 @@ private static Function<ServletContext, FilterConfig> getFilterConfigInitializer
111111
String className = delegate.getClass().getName();
112112

113113
return servletContext -> {
114-
MockServletContext mockServletContext = (MockServletContext) servletContext;
115-
MockFilterConfig filterConfig;
116-
if (filterName != null) {
117-
filterConfig = new MockFilterConfig(servletContext, filterName);
118-
mockServletContext.addFilterRegistration(new MockFilterRegistration(className, filterName));
119-
}
120-
else {
121-
filterConfig = new MockFilterConfig(servletContext);
122-
mockServletContext.addFilterRegistration(new MockFilterRegistration(className));
123-
}
114+
MockFilterConfig filterConfig = (filterName != null ?
115+
new MockFilterConfig(servletContext, filterName) : new MockFilterConfig(servletContext));
116+
124117
if (initParams != null) {
125118
initParams.forEach(filterConfig::addInitParameter);
126119
}
120+
121+
if (servletContext instanceof MockServletContext mockServletContext) {
122+
mockServletContext.addFilterRegistration(filterName != null ?
123+
new MockFilterRegistration(className, filterName) : new MockFilterRegistration(className));
124+
}
125+
127126
return filterConfig;
128127
};
129128
}

0 commit comments

Comments
 (0)