Align the process methods some more.
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Fri, 8 Jul 2011 11:49:50 +0000 (11:49 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Fri, 8 Jul 2011 11:49:50 +0000 (11:49 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1144272 13f79535-47bb-0310-9956-ffa450edef68

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

index 661b68e..b026635 100644 (file)
@@ -129,6 +129,17 @@ public class AjpAprProtocol extends AbstractAjpProtocol {
             recycledProcessors.clear();
         }
         
+        /**
+         * Expected to be used by the handler once the processor is no longer
+         * required.
+         */
+        public void release(SocketWrapper<Long> socket,
+                AjpAprProcessor processor, boolean isSocketClosing) {
+            processor.recycle(isSocketClosing);
+            recycledProcessors.offer(processor);
+        }
+
+
         @Override
         public SocketState process(SocketWrapper<Long> socket,
                 SocketStatus status) {
@@ -165,13 +176,12 @@ 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.
-                    processor.recycle(false);
-                    recycledProcessors.offer(processor);
+                    release(socket, processor, false);
                     ((AprEndpoint)proto.endpoint).getPoller().add(
                             socket.getSocket().longValue());
                 } else {
-                    processor.recycle(true);
-                    recycledProcessors.offer(processor);
+                    // Connection closed. OK to recycle the processor.
+                    release(socket, processor, true);
                 }
                 return state;
             } catch(java.net.SocketException e) {
@@ -193,8 +203,7 @@ public class AjpAprProtocol extends AbstractAjpProtocol {
                 // less-than-verbose logs.
                 log.error(sm.getString("ajpprotocol.proto.error"), e);
             }
-            processor.recycle(true);
-            recycledProcessors.offer(processor);
+            release(socket, processor, true);
             return SocketState.CLOSED;
         }
 
index 111d1a8..fa4b979 100644 (file)
@@ -123,7 +123,18 @@ public class AjpProtocol extends AbstractAjpProtocol {
         public void recycle() {
             recycledProcessors.clear();
         }
-        
+
+        /**
+         * Expected to be used by the handler once the processor is no longer
+         * required.
+         */
+        public void release(SocketWrapper<Socket> socket,
+                AjpProcessor processor, boolean isSocketClosing) {
+            processor.recycle(isSocketClosing);
+            recycledProcessors.offer(processor);
+        }
+
+
         @Override
         public SocketState process(SocketWrapper<Socket> socket,
                 SocketStatus status) {
@@ -160,11 +171,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.
-                    processor.recycle(false);
-                    recycledProcessors.offer(processor);
+                    release(socket, processor, false);
                 } else {
-                    processor.recycle(true);
-                    recycledProcessors.offer(processor);
+                    // Connection closed. OK to recycle the processor.
+                    release(socket, processor, true);
                 }
                 return state;
             } catch(java.net.SocketException e) {
@@ -186,8 +196,7 @@ public class AjpProtocol extends AbstractAjpProtocol {
                 // less-than-verbose logs.
                 log.error(sm.getString("ajpprotocol.proto.error"), e);
             }
-            processor.recycle(true);
-            recycledProcessors.offer(processor);
+            release(socket, processor, true);
             return SocketState.CLOSED;
         }