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