Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Bartel2015-01-23 12:58:42 +0000
committerJan Bartel2015-01-23 12:59:49 +0000
commitae47edb8a785aedc469482667d1aacdf2aefeae2 (patch)
treedf9c1b2996f7326c49caf28b43a6a26a6437f45a
parentb02f283971232cd2fb0034f14060c254cfd67074 (diff)
downloadorg.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.java28
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;

Back to the top