From: markt Date: Thu, 28 Jul 2011 17:12:42 +0000 (+0000) Subject: Improve error handling for APR connector if sendfile fails X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=f2edf9a4e467d08a99eaec4de068784cc3114a34;p=tomcat7.0 Improve error handling for APR connector if sendfile fails git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1151930 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/tomcat/util/net/AprEndpoint.java b/java/org/apache/tomcat/util/net/AprEndpoint.java index 024a08e22..4bc9a9a99 100644 --- a/java/org/apache/tomcat/util/net/AprEndpoint.java +++ b/java/org/apache/tomcat/util/net/AprEndpoint.java @@ -1448,6 +1448,13 @@ public class AprEndpoint extends AbstractEndpoint { // Initialize fd from data given try { data.fdpool = Socket.pool(data.socket); + } catch (Exception e) { + // Pool not created so no need to destroy it. + log.error(sm.getString("endpoint.sendfile.error"), e); + data.socket = 0; + return false; + } + try { data.fd = File.open (data.fileName, File.APR_FOPEN_READ | File.APR_FOPEN_SENDFILE_ENABLED | File.APR_FOPEN_BINARY, @@ -1482,6 +1489,8 @@ public class AprEndpoint extends AbstractEndpoint { } } catch (Exception e) { log.error(sm.getString("endpoint.sendfile.error"), e); + Pool.destroy(data.fdpool); + data.socket = 0; return false; } // Add socket to the list. Newly added sockets will wait diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 788f8502a..2a36164b5 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -120,6 +120,10 @@ 51557: Ignore HTTP headers that do not comply with RFC 2616 and use header names that are not tokens. (markt) + + Improve error handling for HTTP APR if an error occurs while using + sendfile. (markt) +