You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/03/11 20:36:04 UTC

svn commit: r1665981 - /tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java

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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org