Pull up definition of standard messages
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sun, 19 Jun 2011 10:07:22 +0000 (10:07 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sun, 19 Jun 2011 10:07:22 +0000 (10:07 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1137329 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/coyote/ajp/AbstractAjpProcessor.java
java/org/apache/coyote/ajp/AjpAprProcessor.java
java/org/apache/coyote/ajp/AjpNioProcessor.java
java/org/apache/coyote/ajp/AjpProcessor.java

index 9ef9f45..53f9770 100644 (file)
@@ -53,12 +53,65 @@ public abstract class AbstractAjpProcessor extends AbstractProcessor {
 
     protected abstract Log getLog();
 
+
     /**
      * The string manager for this package.
      */
     protected static final StringManager sm =
         StringManager.getManager(Constants.Package);
 
+
+    /**
+     * End message array.
+     */
+    protected static final byte[] endMessageArray;
+
+
+    /**
+     * Flush message array.
+     */
+    protected static final byte[] flushMessageArray;
+    
+
+    /**
+     * Pong message array.
+     */
+    protected static final byte[] pongMessageArray;
+
+
+    static {
+        // Allocate the end message array
+        AjpMessage endMessage = new AjpMessage(16);
+        endMessage.reset();
+        endMessage.appendByte(Constants.JK_AJP13_END_RESPONSE);
+        endMessage.appendByte(1);
+        endMessage.end();
+        endMessageArray = new byte[endMessage.getLen()];
+        System.arraycopy(endMessage.getBuffer(), 0, endMessageArray, 0,
+                endMessage.getLen());
+        
+        // Allocate the flush message array
+        AjpMessage flushMessage = new AjpMessage(16);
+        flushMessage.reset();
+        flushMessage.appendByte(Constants.JK_AJP13_SEND_BODY_CHUNK);
+        flushMessage.appendInt(0);
+        flushMessage.appendByte(0);
+        flushMessage.end();
+        flushMessageArray = new byte[flushMessage.getLen()];
+        System.arraycopy(flushMessage.getBuffer(), 0, flushMessageArray, 0,
+                flushMessage.getLen());
+        
+        // Allocate the pong message array
+        AjpMessage pongMessage = new AjpMessage(16);
+        pongMessage.reset();
+        pongMessage.appendByte(Constants.JK_AJP13_CPONG_REPLY);
+        pongMessage.end();
+        pongMessageArray = new byte[pongMessage.getLen()];
+        System.arraycopy(pongMessage.getBuffer(), 0, pongMessageArray, 
+                0, pongMessage.getLen());
+    }
+
+    
     // ----------------------------------------------------- Instance Variables
 
 
index a73b232..732abc6 100644 (file)
@@ -137,63 +137,6 @@ public class AjpAprProcessor extends AbstractAjpProcessor {
     protected final ByteBuffer getBodyMessageBuffer;
 
 
-    /**
-     * Direct buffer used for sending right away a pong message.
-     */
-    protected static final ByteBuffer pongMessageBuffer;
-
-
-    /**
-     * End message array.
-     */
-    protected static final byte[] endMessageArray;
-
-
-    /**
-     * Direct buffer used for sending explicit flush message.
-     */
-    protected static final ByteBuffer flushMessageBuffer;
-
-
-    // ----------------------------------------------------- Static Initializer
-
-
-    static {
-
-        // Set the read body message buffer
-        AjpMessage pongMessage = new AjpMessage(16);
-        pongMessage.reset();
-        pongMessage.appendByte(Constants.JK_AJP13_CPONG_REPLY);
-        pongMessage.end();
-        pongMessageBuffer = ByteBuffer.allocateDirect(pongMessage.getLen());
-        pongMessageBuffer.put(pongMessage.getBuffer(), 0,
-                pongMessage.getLen());
-
-        // Allocate the end message array
-        AjpMessage endMessage = new AjpMessage(16);
-        endMessage.reset();
-        endMessage.appendByte(Constants.JK_AJP13_END_RESPONSE);
-        endMessage.appendByte(1);
-        endMessage.end();
-        endMessageArray = new byte[endMessage.getLen()];
-        System.arraycopy(endMessage.getBuffer(), 0, endMessageArray, 0,
-                endMessage.getLen());
-
-        // Set the flush message buffer
-        AjpMessage flushMessage = new AjpMessage(16);
-        flushMessage.reset();
-        flushMessage.appendByte(Constants.JK_AJP13_SEND_BODY_CHUNK);
-        flushMessage.appendInt(0);
-        flushMessage.appendByte(0);
-        flushMessage.end();
-        flushMessageBuffer =
-            ByteBuffer.allocateDirect(flushMessage.getLen());
-        flushMessageBuffer.put(flushMessage.getBuffer(), 0,
-                flushMessage.getLen());
-
-    }
-
-
     // --------------------------------------------------------- Public Methods
 
 
@@ -235,8 +178,8 @@ public class AjpAprProcessor extends AbstractAjpProcessor {
                 // not regular request processing
                 int type = requestHeaderMessage.getByte();
                 if (type == Constants.JK_AJP13_CPING_REQUEST) {
-                    if (Socket.sendb(socketRef, pongMessageBuffer, 0,
-                            pongMessageBuffer.position()) < 0) {
+                    if (Socket.send(socketRef, pongMessageArray, 0,
+                            pongMessageArray.length) < 0) {
                         error = true;
                     }
                     continue;
@@ -612,8 +555,8 @@ public class AjpAprProcessor extends AbstractAjpProcessor {
         }
         // Send explicit flush message
         if (explicit && !finished) {
-            if (Socket.sendb(socketRef, flushMessageBuffer, 0,
-                    flushMessageBuffer.position()) < 0) {
+            if (Socket.send(socketRef, flushMessageArray, 0,
+                    flushMessageArray.length) < 0) {
                 throw new IOException(sm.getString("ajpprocessor.failedflush"));
             }
         }
index f9bcf0c..e7ab8a2 100644 (file)
@@ -120,64 +120,6 @@ public class AjpNioProcessor extends AbstractAjpProcessor {
     protected final byte[] getBodyMessageArray;
 
 
-    /**
-     * Direct buffer used for sending right away a pong message.
-     */
-    protected static final byte[] pongMessageArray;
-
-
-    /**
-     * End message array.
-     */
-    protected static final byte[] endMessageArray;
-
-
-    /**
-     * Flush message array.
-     */
-    protected static final byte[] flushMessageArray;
-    
-    // ----------------------------------------------------- Static Initializer
-
-
-    static {
-
-        // Set the read body message buffer
-        AjpMessage pongMessage = new AjpMessage(16);
-        pongMessage.reset();
-        pongMessage.appendByte(Constants.JK_AJP13_CPONG_REPLY);
-        pongMessage.end();
-        pongMessageArray = new byte[pongMessage.getLen()];
-        System.arraycopy(pongMessage.getBuffer(), 0, pongMessageArray, 
-                0, pongMessage.getLen());
-
-        // Allocate the end message array
-        AjpMessage endMessage = new AjpMessage(16);
-        endMessage.reset();
-        endMessage.appendByte(Constants.JK_AJP13_END_RESPONSE);
-        endMessage.appendByte(1);
-        endMessage.end();
-        endMessageArray = new byte[endMessage.getLen()];
-        System.arraycopy(endMessage.getBuffer(), 0, endMessageArray, 0,
-                endMessage.getLen());
-
-        // Allocate the flush message array
-        AjpMessage flushMessage = new AjpMessage(16);
-        flushMessage.reset();
-        flushMessage.appendByte(Constants.JK_AJP13_SEND_BODY_CHUNK);
-        flushMessage.appendInt(0);
-        flushMessage.appendByte(0);
-        flushMessage.end();
-        flushMessageArray = new byte[flushMessage.getLen()];
-        System.arraycopy(flushMessage.getBuffer(), 0, flushMessageArray, 0,
-                flushMessage.getLen());
-
-    }
-
-
-    // ------------------------------------------------------------- Properties
-
-
     // --------------------------------------------------------- Public Methods
 
 
index 19d5142..3080e95 100644 (file)
@@ -130,61 +130,6 @@ public class AjpProcessor extends AbstractAjpProcessor {
     protected final byte[] getBodyMessageArray;
 
 
-    /**
-     * Direct buffer used for sending right away a pong message.
-     */
-    protected static final byte[] pongMessageArray;
-
-
-    /**
-     * End message array.
-     */
-    protected static final byte[] endMessageArray;
-
-
-    /**
-     * Flush message array.
-     */
-    protected static final byte[] flushMessageArray;
-    
-    // ----------------------------------------------------- Static Initializer
-
-
-    static {
-
-        // Set the read body message buffer
-        AjpMessage pongMessage = new AjpMessage(16);
-        pongMessage.reset();
-        pongMessage.appendByte(Constants.JK_AJP13_CPONG_REPLY);
-        pongMessage.end();
-        pongMessageArray = new byte[pongMessage.getLen()];
-        System.arraycopy(pongMessage.getBuffer(), 0, pongMessageArray, 
-                0, pongMessage.getLen());
-
-        // Allocate the end message array
-        AjpMessage endMessage = new AjpMessage(16);
-        endMessage.reset();
-        endMessage.appendByte(Constants.JK_AJP13_END_RESPONSE);
-        endMessage.appendByte(1);
-        endMessage.end();
-        endMessageArray = new byte[endMessage.getLen()];
-        System.arraycopy(endMessage.getBuffer(), 0, endMessageArray, 0,
-                endMessage.getLen());
-
-        // Allocate the flush message array
-        AjpMessage flushMessage = new AjpMessage(16);
-        flushMessage.reset();
-        flushMessage.appendByte(Constants.JK_AJP13_SEND_BODY_CHUNK);
-        flushMessage.appendInt(0);
-        flushMessage.appendByte(0);
-        flushMessage.end();
-        flushMessageArray = new byte[flushMessage.getLen()];
-        System.arraycopy(flushMessage.getBuffer(), 0, flushMessageArray, 0,
-                flushMessage.getLen());
-
-    }
-
-
     // ------------------------------------------------------------- Properties