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 2011/07/08 13:49:50 UTC

svn commit: r1144272 - in /tomcat/trunk/java/org/apache/coyote/ajp: AjpAprProtocol.java AjpProtocol.java

Author: markt
Date: Fri Jul  8 11:49:50 2011
New Revision: 1144272

URL: http://svn.apache.org/viewvc?rev=1144272&view=rev
Log:
Align the process methods some more.

Modified:
    tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java
    tomcat/trunk/java/org/apache/coyote/ajp/AjpProtocol.java

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java?rev=1144272&r1=1144271&r2=1144272&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java Fri Jul  8 11:49:50 2011
@@ -129,6 +129,17 @@ public class AjpAprProtocol extends Abst
             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 Abst
                 } 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 Abst
                 // 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;
         }
 

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProtocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProtocol.java?rev=1144272&r1=1144271&r2=1144272&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProtocol.java Fri Jul  8 11:49:50 2011
@@ -123,7 +123,18 @@ public class AjpProtocol extends Abstrac
         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 Abstrac
                 } 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 Abstrac
                 // 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;
         }
 



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