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 2012/03/22 20:48:52 UTC

svn commit: r1304012 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/tomcat/util/net/NioEndpoint.java

Author: markt
Date: Thu Mar 22 19:48:52 2012
New Revision: 1304012

URL: http://svn.apache.org/viewvc?rev=1304012&view=rev
Log:
Still process events when closing to ensure that Comet connections that are in use when the poller is stopped are sent an end event.

Modified:
    tomcat/tc7.0.x/trunk/   (props changed)
    tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java

Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
  Merged /tomcat/trunk:r1304011

Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1304012&r1=1304011&r2=1304012&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Thu Mar 22 19:48:52 2012
@@ -963,7 +963,6 @@ public class NioEndpoint extends Abstrac
             // exit, otherwise parallel closure of sockets which are still
             // in the poller can cause problems
             close = true;
-            events.clear();
             selector.wakeup();
         }
 
@@ -998,6 +997,9 @@ public class NioEndpoint extends Abstrac
             if ( r==null) r = new PollerEvent(socket,null,interestOps);
             else r.reset(socket,null,interestOps);
             addEvent(r);
+            if (close) {
+                processSocket(socket, SocketStatus.STOP, false);
+            }
         }
 
         /**
@@ -1114,12 +1116,15 @@ public class NioEndpoint extends Abstrac
                         }
                     }
 
-                    boolean hasEvents = events();
+                    boolean hasEvents = false;
 
                     // Time to terminate?
                     if (close) {
+                        events();
                         timeout(0, false);
                         break;
+                    } else {
+                        hasEvents = events();
                     }
                     try {
                         if ( !close ) {
@@ -1133,6 +1138,7 @@ public class NioEndpoint extends Abstrac
                             wakeupCounter.set(0);
                         }
                         if (close) {
+                            events();
                             timeout(0, false);
                             selector.close();
                             break;



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org