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: [email protected]
For additional commands, e-mail: [email protected]