You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2001/10/04 07:44:43 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http HttpProcessor.java
remm 01/10/03 22:44:43
Modified: catalina/src/share/org/apache/catalina/connector/http
HttpProcessor.java
Log:
- Add a flag to indicate that we'll finish the response. We don't if the problem
is an EOFException while parsing the request header.
Fixes bug 3949.
Revision Changes Path
1.37 +16 -8 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java
Index: HttpProcessor.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- HttpProcessor.java 2001/09/05 00:31:50 1.36
+++ HttpProcessor.java 2001/10/04 05:44:43 1.37
@@ -1,6 +1,6 @@
-/* * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v 1.36 2001/09/05 00:31:50 craigmcc Exp $
- * $Revision: 1.36 $
- * $Date: 2001/09/05 00:31:50 $
+/* * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v 1.37 2001/10/04 05:44:43 remm Exp $
+ * $Revision: 1.37 $
+ * $Date: 2001/10/04 05:44:43 $
*
* ====================================================================
*
@@ -106,7 +106,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
- * @version $Revision: 1.36 $ $Date: 2001/09/05 00:31:50 $
+ * @version $Revision: 1.37 $ $Date: 2001/10/04 05:44:43 $
*/
final class HttpProcessor
@@ -919,6 +919,7 @@
private void process(Socket socket) {
boolean ok = true;
+ boolean finishResponse = true;
SocketInputStream input = null;
OutputStream output = null;
@@ -935,6 +936,8 @@
while (!stopped && ok && keepAlive) {
+ finishResponse = true;
+
try {
request.setStream(input);
request.setResponse(response);
@@ -966,7 +969,10 @@
}
}
} catch (EOFException e) {
+ // It's very likely to be a socket disconnect on either the
+ // client or the server
ok = false;
+ finishResponse = false;
} catch (ServletException e) {
ok = false;
try {
@@ -1028,10 +1034,12 @@
// Finish up the handling of the request
try {
- response.finishResponse();
- request.finishRequest();
- if (output != null)
- output.flush();
+ if (finishResponse) {
+ response.finishResponse();
+ request.finishRequest();
+ if (output != null)
+ output.flush();
+ }
} catch (IOException e) {
ok = false;
}