Improve recycling of processors in Http11NioProtocol
authorkkolinko <kkolinko@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 14 Oct 2010 08:32:59 +0000 (08:32 +0000)
committerkkolinko <kkolinko@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 14 Oct 2010 08:32:59 +0000 (08:32 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1022415 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/coyote/http11/Http11NioProtocol.java

index 5292415..c10e0e9 100644 (file)
@@ -330,8 +330,7 @@ public class Http11NioProtocol extends AbstractHttp11JsseProtocol {
                         state = processor.asyncPostProcess();
                     }
                     if (state != SocketState.LONG && state != SocketState.ASYNC_END) {
-                        connections.remove(socket);
-                        recycledProcessors.offer(processor);
+                        release(socket);
                         if (state == SocketState.OPEN) {
                             socket.getPoller().add(socket);
                         }
@@ -422,6 +421,8 @@ public class Http11NioProtocol extends AbstractHttp11JsseProtocol {
                 // less-than-verbose logs.
                 log.error(sm.getString("http11protocol.proto.error"), e);
             }
+            connections.remove(socket);
+            processor.recycle();
             recycledProcessors.offer(processor);
             return SocketState.CLOSED;
         }