Author: markt
Date: Wed Oct  9 11:38:40 2013
New Revision: 1530574

URL: http://svn.apache.org/r1530574
Log:
Handle write errors when the client drops the connection in the same way read 
errors are handled.

Modified:
    
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java

Modified: 
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java?rev=1530574&r1=1530573&r2=1530574&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java 
(original)
+++ 
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java 
Wed Oct  9 11:38:40 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]

Reply via email to