Author: markt Date: Thu Mar 21 21:01:32 2013 New Revision: 1459523 URL: http://svn.apache.org/r1459523 Log: Fix a JVM crash with the unit tests on Windows. Only add the socket back to the poller if the poller did not report an error in the previous poll.
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=1459523&r1=1459522&r2=1459523&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Thu Mar 21 21:01:32 2013 @@ -1629,9 +1629,6 @@ public class AprEndpoint extends Abstrac AprSocketWrapper wrapper = connections.get( Long.valueOf(desc[n*2+1])); wrapper.pollerFlags = wrapper.pollerFlags & ~((int) desc[n*2]); - if (wrapper.pollerFlags != 0) { - add(desc[n*2+1], 1, wrapper.pollerFlags); - } // Check for failed sockets and hand this socket off to a worker if (wrapper.isComet()) { // Event processes either a read or a write depending on what the poller returns @@ -1643,11 +1640,17 @@ public class AprEndpoint extends Abstrac destroySocket(desc[n*2+1]); } } else if ((desc[n*2] & Poll.APR_POLLIN) == Poll.APR_POLLIN) { + if (wrapper.pollerFlags != 0) { + add(desc[n*2+1], 1, wrapper.pollerFlags); + } if (!processSocket(desc[n*2+1], SocketStatus.OPEN_READ)) { // Close socket and clear pool destroySocket(desc[n*2+1]); } } else if ((desc[n*2] & Poll.APR_POLLOUT) == Poll.APR_POLLOUT) { + if (wrapper.pollerFlags != 0) { + add(desc[n*2+1], 1, wrapper.pollerFlags); + } if (!processSocket(desc[n*2+1], SocketStatus.OPEN_WRITE)) { // Close socket and clear pool destroySocket(desc[n*2+1]); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org