diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/tomcat/TomcatEmbeddedContext.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/tomcat/TomcatEmbeddedContext.java index 31ace3d3f71..26dabda476e 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/tomcat/TomcatEmbeddedContext.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/tomcat/TomcatEmbeddedContext.java @@ -71,8 +71,7 @@ class TomcatEmbeddedContext extends StandardContext { Wrapper wrapper = (Wrapper) child; int order = wrapper.getLoadOnStartup(); if (order >= 0) { - grouped.computeIfAbsent(order, ArrayList::new); - grouped.get(order).add(wrapper); + grouped.computeIfAbsent(order, (o) -> new ArrayList<>()).add(wrapper); } } return grouped.values().stream().flatMap(List::stream); diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactoryTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactoryTests.java index 4c0dfa0e28a..abf4bacc06d 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactoryTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactoryTests.java @@ -519,6 +519,21 @@ public class TomcatServletWebServerFactoryTests extends AbstractServletWebServer () -> factory.getWebServer((context) -> context.addListener(new FailingServletContextListener()))); } + @Test + public void registerJspServletWithDefaultLoadOnStartup() { + TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(0); + factory.addInitializers(new ServletContextInitializer() { + + @Override + public void onStartup(ServletContext servletContext) throws ServletException { + servletContext.addServlet("manually-registered-jsp-servlet", JspServlet.class); + } + + }); + this.webServer = factory.getWebServer(); + this.webServer.start(); + } + @Override protected JspServlet getJspServlet() throws ServletException { Tomcat tomcat = ((TomcatWebServer) this.webServer).getTomcat();