Author: markt
Date: Tue Aug 23 17:44:42 2011
New Revision: 1160822

URL: http://svn.apache.org/viewvc?rev=1160822&view=rev
Log:
Re-factoring
Add byte read count
Add ability to swallow input

Modified:
    tomcat/tc7.0.x/trunk/   (props changed)
    tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java

Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Aug 23 17:44:42 2011
@@ -1 +1 @@
-/tomcat/trunk:1156171,1156276,1156304,1156530,1156602,1157015,1157018,1157151,1157198,1157204,1157810,1157832,1157834,1157847,1157908,1157939,1158155,1158160,1158176,1158195,1158198-1158199,1158227,1158331,1158334-1158335,1160347,1160592,1160611,1160619,1160626,1160639,1160652,1160720-1160721
+/tomcat/trunk:1156171,1156276,1156304,1156530,1156602,1157015,1157018,1157151,1157198,1157204,1157810,1157832,1157834,1157847,1157908,1157939,1158155,1158160,1158176,1158195,1158198-1158199,1158227,1158331,1158334-1158335,1160347,1160592,1160611,1160619,1160626,1160639,1160652,1160720-1160721,1160772,1160774,1160776

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java?rev=1160822&r1=1160821&r2=1160822&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java 
Tue Aug 23 17:44:42 2011
@@ -220,9 +220,15 @@ public abstract class AbstractAjpProcess
 
 
     /**
-     * Bytes written to client for the current request
+     * Bytes written to client for the current request.
      */
-    protected long byteCount = 0;
+    protected long bytesWritten = 0;
+
+
+    /**
+     * Request body bytes read for the current request.
+     */
+    protected long bodyBytesRead = 0;
 
 
     // ------------------------------------------------------------ Constructor
@@ -529,7 +535,8 @@ public abstract class AbstractAjpProcess
         request.recycle();
         response.recycle();
         certificates.recycle();
-        byteCount = 0;
+        bytesWritten = 0;
+        bodyBytesRead = 0;
     }
 
 
@@ -1003,12 +1010,12 @@ public abstract class AbstractAjpProcess
      */
     protected class SocketInputBuffer implements InputBuffer {
 
-
         /**
-         * Read bytes into the specified chunk.
+         * Read bytes into the specified chunk. If no chunk is specified, the
+         * bytes are swallowed.
          */
         @Override
-        public int doRead(ByteChunk chunk, Request req )
+        public int doRead(ByteChunk chunk, Request req)
         throws IOException {
 
             if (endOfStream) {
@@ -1025,10 +1032,12 @@ public abstract class AbstractAjpProcess
                 }
             }
             ByteChunk bc = bodyBytes.getByteChunk();
-            chunk.setBytes(bc.getBuffer(), bc.getStart(), bc.getLength());
+            bodyBytesRead += bc.getLength();
+            if (chunk != null) {
+                chunk.setBytes(bc.getBuffer(), bc.getStart(), bc.getLength());
+            }
             empty = true;
-            return chunk.getLength();
-
+            return bc.getLength();
         }
 
     }
@@ -1079,13 +1088,13 @@ public abstract class AbstractAjpProcess
                 off += thisTime;
             }
 
-            byteCount += chunk.getLength();
+            bytesWritten += chunk.getLength();
             return chunk.getLength();
         }
 
         @Override
         public long getBytesWritten() {
-            return byteCount;
+            return bytesWritten;
         }
     }
 }



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

Reply via email to