Author: remy.maucherat(a)jboss.com
Date: 2009-11-20 10:36:52 -0500 (Fri, 20 Nov 2009)
New Revision: 1280
Modified:
trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
Log:
- Re cleanup.
Modified: trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
===================================================================
--- trunk/java/org/apache/tomcat/util/net/AprEndpoint.java 2009-11-19 21:49:54 UTC (rev
1279)
+++ trunk/java/org/apache/tomcat/util/net/AprEndpoint.java 2009-11-20 15:36:52 UTC (rev
1280)
@@ -1759,7 +1759,8 @@
if (event) {
// Event processes either a read or a write depending
on what the poller returns
if (((desc[n*2] & Poll.APR_POLLHUP) ==
Poll.APR_POLLHUP)
- || ((desc[n*2] & Poll.APR_POLLERR) ==
Poll.APR_POLLERR)) {
+ || ((desc[n*2] & Poll.APR_POLLERR) ==
Poll.APR_POLLERR)
+ || ((desc[n*2] & Poll.APR_POLLNVAL) ==
Poll.APR_POLLNVAL)) {
if (!processSocket(desc[n*2+1],
SocketStatus.ERROR)) {
// Close socket and clear pool
Socket.destroy(desc[n*2+1]);
@@ -1783,10 +1784,18 @@
}
}
} else if (((desc[n*2] & Poll.APR_POLLHUP) ==
Poll.APR_POLLHUP)
- || ((desc[n*2] & Poll.APR_POLLERR) ==
Poll.APR_POLLERR)) {
+ || ((desc[n*2] & Poll.APR_POLLERR) ==
Poll.APR_POLLERR)
+ || ((desc[n*2] & Poll.APR_POLLNVAL) ==
Poll.APR_POLLNVAL)) {
// Close socket and clear pool
Socket.destroy(desc[n*2+1]);
- } else if (!processSocket(desc[n*2+1])) {
+ } else if ((desc[n*2] & Poll.APR_POLLIN) ==
Poll.APR_POLLIN) {
+ if (!processSocket(desc[n*2+1])) {
+ // Close socket and clear pool
+ Socket.destroy(desc[n*2+1]);
+ }
+ } else {
+ // Unknown event
+
log.warn(sm.getString("endpoint.poll.flags", "" + desc[n*2]));
// Close socket and clear pool
Socket.destroy(desc[n*2+1]);
}
Show replies by date