--- a/java/org/apache/catalina/core/StandardWrapper.java +++ a/java/org/apache/catalina/core/StandardWrapper.java @@ -1115,10 +1115,9 @@ public class StandardWrapper extends ContainerBase classLoadTime=(int) (System.currentTimeMillis() -t1); - initServlet(servlet); - - // Register our newly initialized instance singleThreadModel = servlet instanceof SingleThreadModel; + initServlet(servlet, singleThreadModel); + // Register our newly initialized instance if (singleThreadModel) { if (instancePool == null) instancePool = new Stack(); @@ -1182,11 +1181,15 @@ public class StandardWrapper extends ContainerBase new ServletSecurityElement(secAnnotation)); } } + + private void initServlet(Servlet servlet) throws ServletException { + initServlet(servlet, false); + } - private synchronized void initServlet(Servlet servlet) + private synchronized void initServlet(Servlet servlet, boolean force) throws ServletException { - if (instanceInitialized) return; + if (instanceInitialized && !force) return; // Call the initialization method of this servlet try {