Hi Remy,

can we backport this to tomcat 5.5?

regards
Peter



Am 13.10.2006 um 13:39 schrieb [EMAIL PROTECTED]:

Author: remm
Date: Fri Oct 13 04:39:30 2006
New Revision: 463652

URL: http://svn.apache.org/viewvc?view=rev&rev=463652
Log:
- Packet must be ended before sending.
- Fix off by one check bug in AjpMessage.
- Fix recycling bug (setting streams to null when doing keepalive is not a good idea).

Modified:
    tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpMessage.java
    tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java

Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/ AjpMessage.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/ apache/coyote/ajp/AjpMessage.java? view=diff&rev=463652&r1=463651&r2=463652 ====================================================================== ======== --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpMessage.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpMessage.java Fri Oct 13 04:39:30 2006
@@ -275,7 +275,7 @@
      * @param numBytes The number of bytes to copy.
      */
     public void appendBytes(byte[] b, int off, int numBytes) {
-        if (pos + numBytes + 3 >= buf.length) {
+        if (pos + numBytes + 3 > buf.length) {
log.error(sm.getString("ajpmessage.overflow", "" + numBytes, "" + pos),
                     new ArrayIndexOutOfBoundsException());
             if (log.isDebugEnabled()) {
@@ -381,6 +381,11 @@
         return 4;
     }

+
+    public int getPacketSize() {
+        return buf.length;
+    }
+

     public int processHeader() {
         pos = 0;

Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/ AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/ apache/coyote/ajp/AjpProcessor.java? view=diff&rev=463652&r1=463651&r2=463652 ====================================================================== ======== --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/ AjpProcessor.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/ AjpProcessor.java Fri Oct 13 04:39:30 2006
@@ -428,7 +428,9 @@

         rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
         recycle();
-
+        input = null;
+        output = null;
+
         return true;

     }
@@ -1062,9 +1064,6 @@
         response.recycle();
         certificates.recycle();

-        input = null;
-        output = null;
-
     }


@@ -1157,7 +1156,9 @@
                 responseHeaderMessage.reset();
responseHeaderMessage.appendByte (Constants.JK_AJP13_SEND_BODY_CHUNK); responseHeaderMessage.appendBytes(chunk.getBytes (), chunk.getOffset() + off, thisTime);
+                responseHeaderMessage.end();
output.write(responseHeaderMessage.getBuffer(), 0, responseHeaderMessage.getLen());
+
                 off += thisTime;
             }




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to