diff options
author | Greg Wilkins | 2015-01-23 13:57:17 +0000 |
---|---|---|
committer | Greg Wilkins | 2015-01-23 13:57:17 +0000 |
commit | 934625176f6873b6c529ebacf3f21a058098a54e (patch) | |
tree | 0628d6af124b875ddb29379eb7ae2aa971e00bc5 | |
parent | d59887980d6948a95bfdcdb2c6e0decbce5c2287 (diff) | |
parent | ae47edb8a785aedc469482667d1aacdf2aefeae2 (diff) | |
download | org.eclipse.jetty.project-934625176f6873b6c529ebacf3f21a058098a54e.tar.gz org.eclipse.jetty.project-934625176f6873b6c529ebacf3f21a058098a54e.tar.xz org.eclipse.jetty.project-934625176f6873b6c529ebacf3f21a058098a54e.zip |
Merge branch 'jetty-9.2.x' of ssh://git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project into jetty-9.2.x
-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; |