You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/10/09 13:39:26 UTC
svn commit: r1530575 - in /tomcat/tc7.0.x/trunk: ./
java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java
Author: markt
Date: Wed Oct 9 11:39:26 2013
New Revision: 1530575
URL: http://svn.apache.org/r1530575
Log:
Handle write errors when the client drops the connection in the same way read errors are handled.
Modified:
tomcat/tc7.0.x/trunk/ (props changed)
tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java
Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
Merged /tomcat/trunk:r1530574
Modified: tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java?rev=1530575&r1=1530574&r2=1530575&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java Wed Oct 9 11:39:26 2013
@@ -16,11 +16,13 @@
*/
package org.apache.coyote.http11.upgrade;
+import java.io.EOFException;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
+import org.apache.tomcat.jni.OS;
import org.apache.tomcat.jni.Socket;
import org.apache.tomcat.jni.Status;
import org.apache.tomcat.util.net.AprEndpoint;
@@ -132,6 +134,12 @@ public class AprServletOutputStream exte
}
if (Status.APR_STATUS_IS_EAGAIN(-written)) {
written = 0;
+ } else if (-written == Status.APR_EOF) {
+ throw new EOFException(sm.getString("apr.clientAbort"));
+ } else if ((OS.IS_WIN32 || OS.IS_WIN64) &&
+ (-written == Status.APR_OS_START_SYSERR + 10053)) {
+ // 10053 on Windows is connection aborted
+ throw new EOFException(sm.getString("apr.clientAbort"));
} else if (written < 0) {
throw new IOException(sm.getString("apr.write.error",
Integer.valueOf(-written)));
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org