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