Author: kkolinko
Date: Sat Jan 21 10:41:41 2017
New Revision: 1779718
URL: http://svn.apache.org/viewvc?rev=1779718&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=60596
Improve performance of DefaultServlet when sendfile feature is disabled on
connector:
- Reorder checks so that im-memory checks are done first and I/O ones are done
later.
- Remember calculated canonicalPath value.
Modified:
tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java?rev=1779718&r1=1779717&r2=1779718&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java Sat Jan
21 10:41:41 2017
@@ -1873,14 +1873,16 @@ public class DefaultServlet extends Http
HttpServletResponse response,
WebResource resource,
long length, Range range) {
+ String canonicalPath;
if (sendfileSize > 0
- && resource.isFile()
&& length > sendfileSize
- && (resource.getCanonicalPath() != null)
&&
(Boolean.TRUE.equals(request.getAttribute(Globals.SENDFILE_SUPPORTED_ATTR)))
&&
(request.getClass().getName().equals("org.apache.catalina.connector.RequestFacade"))
- &&
(response.getClass().getName().equals("org.apache.catalina.connector.ResponseFacade")))
{
- request.setAttribute(Globals.SENDFILE_FILENAME_ATTR,
resource.getCanonicalPath());
+ &&
(response.getClass().getName().equals("org.apache.catalina.connector.ResponseFacade"))
+ && resource.isFile()
+ && ((canonicalPath = resource.getCanonicalPath()) != null)
+ ) {
+ request.setAttribute(Globals.SENDFILE_FILENAME_ATTR,
canonicalPath);
if (range == null) {
request.setAttribute(Globals.SENDFILE_FILE_START_ATTR,
Long.valueOf(0L));
request.setAttribute(Globals.SENDFILE_FILE_END_ATTR,
Long.valueOf(length));
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1779718&r1=1779717&r2=1779718&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Sat Jan 21 10:41:41 2017
@@ -45,6 +45,14 @@
issues do not "pop up" wrt. others).
-->
<section name="Tomcat 9.0.0.M18 (markt)" rtext="in development">
+ <subsection name="Catalina">
+ <changelog>
+ <update>
+ <bug>60596</bug>: Improve performance of DefaultServlet when sendfile
+ feature is disabled on connector. (kkolinko)
+ </update>
+ </changelog>
+ </subsection>
<subsection name="Coyote">
<changelog>
<fix>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]