Completely align process methods
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Fri, 8 Jul 2011 11:56:33 +0000 (11:56 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Fri, 8 Jul 2011 11:56:33 +0000 (11:56 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1144276 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/coyote/ajp/AjpAprProtocol.java
java/org/apache/coyote/ajp/AjpNioProtocol.java
java/org/apache/coyote/ajp/AjpProtocol.java

index b026635..50b25ad 100644 (file)
@@ -134,9 +134,14 @@ public class AjpAprProtocol extends AbstractAjpProtocol {
          * required.
          */
         public void release(SocketWrapper<Long> socket,
-                AjpAprProcessor processor, boolean isSocketClosing) {
+                AjpAprProcessor processor, boolean isSocketClosing,
+                boolean addToPoller) {
             processor.recycle(isSocketClosing);
             recycledProcessors.offer(processor);
+            if (addToPoller) {
+                ((AprEndpoint)proto.endpoint).getPoller().add(
+                        socket.getSocket().longValue());
+            }
         }
 
 
@@ -176,12 +181,10 @@ public class AjpAprProtocol extends AbstractAjpProtocol {
                 } else if (state == SocketState.OPEN){
                     // In keep-alive but between requests. OK to recycle
                     // processor. Continue to poll for the next request.
-                    release(socket, processor, false);
-                    ((AprEndpoint)proto.endpoint).getPoller().add(
-                            socket.getSocket().longValue());
+                    release(socket, processor, false, true);
                 } else {
                     // Connection closed. OK to recycle the processor.
-                    release(socket, processor, true);
+                    release(socket, processor, true, false);
                 }
                 return state;
             } catch(java.net.SocketException e) {
@@ -203,7 +206,7 @@ public class AjpAprProtocol extends AbstractAjpProtocol {
                 // less-than-verbose logs.
                 log.error(sm.getString("ajpprotocol.proto.error"), e);
             }
-            release(socket, processor, true);
+            release(socket, processor, true, false);
             return SocketState.CLOSED;
         }
 
index 1a04b66..baeaf5c 100644 (file)
@@ -163,17 +163,21 @@ public class AjpNioProtocol extends AbstractAjpProtocol {
             }
         }
 
-
         /**
          * Expected to be used by the handler once the processor is no longer
          * required.
          */
         public void release(SocketWrapper<NioChannel> socket,
-                AjpNioProcessor processor, boolean isSocketClosing) {
+                AjpNioProcessor processor, boolean isSocketClosing,
+                boolean addToPoller) {
             processor.recycle(isSocketClosing);
             recycledProcessors.offer(processor);
+            if (addToPoller) {
+                socket.getSocket().getPoller().add(socket.getSocket());
+            }
         }
 
+
         @Override
         public SocketState process(SocketWrapper<NioChannel> socket,
                 SocketStatus status) {
@@ -210,11 +214,10 @@ public class AjpNioProtocol extends AbstractAjpProtocol {
                 } else if (state == SocketState.OPEN){
                     // In keep-alive but between requests. OK to recycle
                     // processor. Continue to poll for the next request.
-                    release(socket, processor, false);
-                    socket.getSocket().getPoller().add(socket.getSocket());
+                    release(socket, processor, false, true);
                 } else {
                     // Connection closed. OK to recycle the processor.
-                    release(socket, processor, true);
+                    release(socket, processor, true, false);
                 }
                 return state;
             } catch(java.net.SocketException e) {
@@ -236,7 +239,7 @@ public class AjpNioProtocol extends AbstractAjpProtocol {
                 // less-than-verbose logs.
                 log.error(sm.getString("ajpprotocol.proto.error"), e);
             }
-            release(socket, processor, true);
+            release(socket, processor, true, false);
             return SocketState.CLOSED;
         }
 
index fa4b979..014d910 100644 (file)
@@ -127,9 +127,15 @@ public class AjpProtocol extends AbstractAjpProtocol {
         /**
          * Expected to be used by the handler once the processor is no longer
          * required.
+         * 
+         * @param socket            Ignored for BIO
+         * @param processor
+         * @param isSocketClosing
+         * @param addToPoller       Ignored for BIO
          */
         public void release(SocketWrapper<Socket> socket,
-                AjpProcessor processor, boolean isSocketClosing) {
+                AjpProcessor processor, boolean isSocketClosing,
+                boolean addToPoller) {
             processor.recycle(isSocketClosing);
             recycledProcessors.offer(processor);
         }
@@ -171,10 +177,10 @@ public class AjpProtocol extends AbstractAjpProtocol {
                 } else if (state == SocketState.OPEN){
                     // In keep-alive but between requests. OK to recycle
                     // processor. Continue to poll for the next request.
-                    release(socket, processor, false);
+                    release(socket, processor, false, true);
                 } else {
                     // Connection closed. OK to recycle the processor.
-                    release(socket, processor, true);
+                    release(socket, processor, true, false);
                 }
                 return state;
             } catch(java.net.SocketException e) {
@@ -196,7 +202,7 @@ public class AjpProtocol extends AbstractAjpProtocol {
                 // less-than-verbose logs.
                 log.error(sm.getString("ajpprotocol.proto.error"), e);
             }
-            release(socket, processor, true);
+            release(socket, processor, true, false);
             return SocketState.CLOSED;
         }