Author: markt Date: Fri Dec 11 20:29:00 2015 New Revision: 1719532 URL: http://svn.apache.org/viewvc?rev=1719532&view=rev Log: Handle APR_POLLHUP using the correct status DISCONNECT rather than as OPEN_READ or OPEN_WRITE.
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1719532&r1=1719531&r2=1719532&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri Dec 11 20:29:00 2015 @@ -1706,8 +1706,12 @@ public class AprEndpoint extends Abstrac } wrapper.pollerFlags = wrapper.pollerFlags & ~((int) desc[n*2]); // Check for failed sockets and hand this socket off to a worker - if (((desc[n*2] & Poll.APR_POLLHUP) == Poll.APR_POLLHUP) - || ((desc[n*2] & Poll.APR_POLLERR) == Poll.APR_POLLERR) + if ((desc[n*2] & Poll.APR_POLLHUP) == Poll.APR_POLLHUP) { + if (!processSocket(desc[n*2+1], SocketStatus.DISCONNECT)) { + // Close socket and clear pool + closeSocket(desc[n*2+1]); + } + } else if(((desc[n*2] & Poll.APR_POLLERR) == Poll.APR_POLLERR) || ((desc[n*2] & Poll.APR_POLLNVAL) == Poll.APR_POLLNVAL)) { // Need to trigger error handling. Poller may return error // codes plus the flags it was waiting for or it may just --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org