Author: markt Date: Wed Mar 11 19:36:03 2015 New Revision: 1665981 URL: http://svn.apache.org/r1665981 Log: Avoid unexpected closure of the socket if the socket is first registered for one event and then later registered for another.
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=1665981&r1=1665980&r2=1665981&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Wed Mar 11 19:36:03 2015 @@ -1708,6 +1708,12 @@ public class AprEndpoint extends Abstrac wrapper.pollerFlags = wrapper.pollerFlags | (info.read() ? Poll.APR_POLLIN : 0) | (info.write() ? Poll.APR_POLLOUT : 0); + // A socket can only be added to the poller + // once. Adding it twice will return an error + // which will close the socket. Therefore make + // sure the socket we are about to add isn't in + // the poller. + removeFromPoller(info.socket); if (!addToPoller(info.socket, wrapper.pollerFlags)) { closeSocket(info.socket); } else { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org