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