From: markt Date: Sun, 6 Mar 2011 07:17:07 +0000 (+0000) Subject: Fix threading issue reported on dev list X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=bb0e08651634cf3d3635d64d68df39147834a4d5;p=tomcat7.0 Fix threading issue reported on dev list git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1078409 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/jasper/servlet/JspServletWrapper.java b/java/org/apache/jasper/servlet/JspServletWrapper.java index f69221c95..5061c4083 100644 --- a/java/org/apache/jasper/servlet/JspServletWrapper.java +++ b/java/org/apache/jasper/servlet/JspServletWrapper.java @@ -312,6 +312,8 @@ public class JspServletWrapper { boolean precompile) throws ServletException, IOException, FileNotFoundException { + Servlet servlet; + try { if (ctxt.isRemoved()) { @@ -351,7 +353,7 @@ public class JspServletWrapper { /* * (2) (Re)load servlet class file */ - getServlet(); + servlet = getServlet(); // If a page is to be precompiled only, return. if (precompile) { @@ -407,14 +409,14 @@ public class JspServletWrapper { /* * (4) Service request */ - if (theServlet instanceof SingleThreadModel) { + if (servlet instanceof SingleThreadModel) { // sync on the wrapper so that the freshness // of the page is determined right before servicing synchronized (this) { - theServlet.service(request, response); + servlet.service(request, response); } } else { - theServlet.service(request, response); + servlet.service(request, response); } } catch (UnavailableException ex) { String includeRequestUri = (String) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index f3b58211b..05e176116 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -42,6 +42,16 @@ General, Catalina, Coyote, Jasper, Cluster, Web applications, Extras, Tribes, Other --> +
+ + + + Correct possible threading issue in JSP compilation when development + mode is used. (markt) + + + +