Author: markt
Date: Thu Aug 15 11:45:36 2013
New Revision: 1514239

URL: http://svn.apache.org/r1514239
Log:
Fix non-blocking test failures on OSX when using APR.

Modified:
    tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java

Modified: 
tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1514239&r1=1514238&r2=1514239&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Thu 
Aug 15 11:45:36 2013
@@ -1586,7 +1586,7 @@ public abstract class AbstractHttp11Proc
                 request.getReadListener() != null) {
             try {
                 try {
-                    if (inputBuffer.available() > 0 ||  inputBuffer.nbRead() > 
0) {
+                    if (inputBuffer.available() > 0 || inputBuffer.nbRead() > 
0) {
                         asyncStateMachine.asyncOperation();
                     }
                 } catch (IOException x) {

Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java?rev=1514239&r1=1514238&r2=1514239&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java Thu 
Aug 15 11:45:36 2013
@@ -627,6 +627,13 @@ public class InternalAprInputBuffer exte
             return nRead;
         } else if (-nRead == Status.EAGAIN) {
             return 0;
+        } else if (-nRead == Status.TIMEUP) {
+            // Attempting to read from the socket when the poller has not
+            // signaled that there is data to read appears to behave like a
+            // blocking read with a short timeout on OSX rather than like a
+            // non-blocking read. If no data is read, treat the resulting
+            // timeout like a non-blocking read that returned no data.
+            return 0;
         } else {
             throw new IOException(sm.getString("iib.failedread.apr",
                     Integer.valueOf(-nRead)));



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to