diff options
author | Jan Bartel | 2015-01-23 12:58:42 +0000 |
---|---|---|
committer | Jan Bartel | 2015-01-23 12:59:49 +0000 |
commit | ae47edb8a785aedc469482667d1aacdf2aefeae2 (patch) | |
tree | df9c1b2996f7326c49caf28b43a6a26a6437f45a | |
parent | b02f283971232cd2fb0034f14060c254cfd67074 (diff) | |
download | org.eclipse.jetty.project-ae47edb8a785aedc469482667d1aacdf2aefeae2.tar.gz org.eclipse.jetty.project-ae47edb8a785aedc469482667d1aacdf2aefeae2.tar.xz org.eclipse.jetty.project-ae47edb8a785aedc469482667d1aacdf2aefeae2.zip |
458175 multipart annotation on lazily loaded servlet does not work
-rw-r--r-- | jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java index cbd13dd291..07636d7bc2 100644 --- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java +++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java @@ -745,10 +745,27 @@ public class ServletHolder extends Holder<Servlet> implements UserIdentity.Scope protected void prepare (Request baseRequest, ServletRequest request, ServletResponse response) throws ServletException, UnavailableException { + ensureInstance(); MultipartConfigElement mpce = ((Registration)getRegistration()).getMultipartConfig(); if (mpce != null) baseRequest.setAttribute(Request.__MULTIPART_CONFIG_ELEMENT, mpce); } + + public synchronized Servlet ensureInstance() + throws ServletException, UnavailableException + { + if (_class==null) + throw new UnavailableException("Servlet Not Initialized"); + Servlet servlet=_servlet; + if (!isStarted()) + throw new UnavailableException("Servlet not initialized", -1); + if (_unavailable!=0 || (!_initOnStartup && servlet==null)) + servlet=getServlet(); + if (servlet==null) + throw new UnavailableException("Could not instantiate "+_class); + + return servlet; + } /* ------------------------------------------------------------ */ /** Service a request with this servlet. @@ -769,16 +786,7 @@ public class ServletHolder extends Holder<Servlet> implements UserIdentity.Scope if (_class==null) throw new UnavailableException("Servlet Not Initialized"); - Servlet servlet=_servlet; - synchronized(this) - { - if (!isStarted()) - throw new UnavailableException("Servlet not initialized", -1); - if (_unavailable!=0 || (!_initOnStartup && servlet==null)) - servlet=getServlet(); - if (servlet==null) - throw new UnavailableException("Could not instantiate "+_class); - } + Servlet servlet = ensureInstance(); // Service the request boolean servlet_error=true; |