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/06/19 18:30:26 UTC

svn commit: r1137385 - in /tomcat/trunk/java/org/apache/coyote/ajp: AbstractAjpProcessor.java AjpAprProcessor.java AjpNioProcessor.java AjpProcessor.java

Author: markt
Date: Sun Jun 19 16:30:26 2011
New Revision: 1137385

URL: http://svn.apache.org/viewvc?rev=1137385&view=rev
Log:
Pull up getBody message

Modified:
    tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java
    tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java
    tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java
    tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java?rev=1137385&r1=1137384&r2=1137385&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java Sun Jun 19 16:30:26 2011
@@ -115,6 +115,13 @@ public abstract class AbstractAjpProcess
 
 
     /**
+     * GetBody message array. Not static like the other message arrays since the
+     * message varies with packetSize and that can vary per connector.
+     */
+    protected final byte[] getBodyMessageArray;
+
+
+    /**
      * AJP packet size.
      */
     protected int packetSize;
@@ -219,6 +226,18 @@ public abstract class AbstractAjpProcess
         requestHeaderMessage = new AjpMessage(packetSize);
         responseHeaderMessage = new AjpMessage(packetSize);
         bodyMessage = new AjpMessage(packetSize);
+        
+        // Set the getBody message buffer
+        AjpMessage getBodyMessage = new AjpMessage(16);
+        getBodyMessage.reset();
+        getBodyMessage.appendByte(Constants.JK_AJP13_GET_BODY_CHUNK);
+        // Adjust read size if packetSize != default (Constants.MAX_PACKET_SIZE)
+        getBodyMessage.appendInt(Constants.MAX_READ_SIZE + packetSize -
+                Constants.MAX_PACKET_SIZE);
+        getBodyMessage.end();
+        getBodyMessageArray = new byte[getBodyMessage.getLen()];
+        System.arraycopy(getBodyMessage.getBuffer(), 0, getBodyMessageArray, 
+                         0, getBodyMessage.getLen());
     }
 
     

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java?rev=1137385&r1=1137384&r2=1137385&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java Sun Jun 19 16:30:26 2011
@@ -72,18 +72,6 @@ public class AjpAprProcessor extends Abs
 
         response.setOutputBuffer(new SocketOutputBuffer());
 
-        // Set the get body message buffer
-        AjpMessage getBodyMessage = new AjpMessage(16);
-        getBodyMessage.reset();
-        getBodyMessage.appendByte(Constants.JK_AJP13_GET_BODY_CHUNK);
-        // Adjust allowed size if packetSize != default (Constants.MAX_PACKET_SIZE)
-        getBodyMessage.appendInt(Constants.MAX_READ_SIZE + packetSize - Constants.MAX_PACKET_SIZE);
-        getBodyMessage.end();
-        getBodyMessageBuffer =
-            ByteBuffer.allocateDirect(getBodyMessage.getLen());
-        getBodyMessageBuffer.put(getBodyMessage.getBuffer(), 0,
-                                 getBodyMessage.getLen());
-
         // Allocate input and output buffers
         inputBuffer = ByteBuffer.allocateDirect(packetSize * 2);
         inputBuffer.limit(0);
@@ -119,12 +107,6 @@ public class AjpAprProcessor extends Abs
     protected ByteBuffer outputBuffer = null;
 
 
-    /**
-     * Direct buffer used for sending right away a get body message.
-     */
-    protected final ByteBuffer getBodyMessageBuffer;
-
-
     // --------------------------------------------------------- Public Methods
 
 
@@ -452,8 +434,8 @@ public class AjpAprProcessor extends Abs
         }
 
         // Request more data immediately
-        Socket.sendb(socket.getSocket().longValue(), getBodyMessageBuffer, 0,
-                getBodyMessageBuffer.position());
+        Socket.send(socket.getSocket().longValue(), getBodyMessageArray, 0,
+                getBodyMessageArray.length);
 
         boolean moreData = receive();
         if( !moreData ) {

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java?rev=1137385&r1=1137384&r2=1137385&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java Sun Jun 19 16:30:26 2011
@@ -67,17 +67,6 @@ public class AjpNioProcessor extends Abs
 
         pool = endpoint.getSelectorPool();
 
-        // Set the get body message buffer
-        AjpMessage getBodyMessage = new AjpMessage(16);
-        getBodyMessage.reset();
-        getBodyMessage.appendByte(Constants.JK_AJP13_GET_BODY_CHUNK);
-        // Adjust allowed size if packetSize != default (Constants.MAX_PACKET_SIZE)
-        getBodyMessage.appendInt(Constants.MAX_READ_SIZE + packetSize - Constants.MAX_PACKET_SIZE);
-        getBodyMessage.end();
-        getBodyMessageArray = new byte[getBodyMessage.getLen()];
-        System.arraycopy(getBodyMessage.getBuffer(), 0, getBodyMessageArray, 
-                         0, getBodyMessage.getLen());
-
         // Cause loading of HexUtils
         HexUtils.load();
 
@@ -102,12 +91,6 @@ public class AjpNioProcessor extends Abs
     protected NioSelectorPool pool;
 
 
-    /**
-     * Direct buffer used for sending right away a get body message.
-     */
-    protected final byte[] getBodyMessageArray;
-
-
     // --------------------------------------------------------- Public Methods
 
 

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1137385&r1=1137384&r2=1137385&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Sun Jun 19 16:30:26 2011
@@ -71,17 +71,6 @@ public class AjpProcessor extends Abstra
 
         response.setOutputBuffer(new SocketOutputBuffer());
 
-        // Set the get body message buffer
-        AjpMessage getBodyMessage = new AjpMessage(16);
-        getBodyMessage.reset();
-        getBodyMessage.appendByte(Constants.JK_AJP13_GET_BODY_CHUNK);
-        // Adjust allowed size if packetSize != default (Constants.MAX_PACKET_SIZE)
-        getBodyMessage.appendInt(Constants.MAX_READ_SIZE + packetSize - Constants.MAX_PACKET_SIZE);
-        getBodyMessage.end();
-        getBodyMessageArray = new byte[getBodyMessage.getLen()];
-        System.arraycopy(getBodyMessage.getBuffer(), 0, getBodyMessageArray, 
-                         0, getBodyMessage.getLen());
-
         // Cause loading of HexUtils
         HexUtils.load();
 
@@ -112,15 +101,6 @@ public class AjpProcessor extends Abstra
     protected OutputStream output;
     
 
-    /**
-     * Direct buffer used for sending right away a get body message.
-     */
-    protected final byte[] getBodyMessageArray;
-
-
-    // ------------------------------------------------------------- Properties
-
-
     // --------------------------------------------------------- Public Methods
 
 



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