Mark, On 3/10/15 4:44 PM, ma...@apache.org wrote: > Author: markt > Date: Tue Mar 10 20:44:56 2015 > New Revision: 1665682 > > URL: http://svn.apache.org/r1665682 > Log: > Follow-up to r1665297 > Correct output loop. Forgot to increment offset for subsequent writes. > > Modified: > tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java > > Modified: tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java > URL: > http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java?rev=1665682&r1=1665681&r2=1665682&view=diff > ============================================================================== > --- tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java > (original) > +++ tomcat/tc7.0.x/trunk/java/org/apache/coyote/ajp/AjpNioProcessor.java Tue > Mar 10 20:44:56 2015 > @@ -302,11 +302,11 @@ public class AjpNioProcessor extends Abs > ByteBuffer writeBuffer = > socketWrapper.getSocket().getBufHandler().getWriteBuffer(); > > - int left = length; > + int thisTime = 0; > int written = 0; > - while (left > 0) { > - int toWrite = Math.min(left, writeBuffer.remaining()); > - writeBuffer.put(src, offset, toWrite); > + while (written < length) { > + int toWrite = Math.min(length - written, > writeBuffer.remaining()); > + writeBuffer.put(src, offset + written, toWrite); > > writeBuffer.flip(); > > @@ -318,13 +318,13 @@ public class AjpNioProcessor extends Abs > //ignore > } > try { > - written = pool.write(writeBuffer, socketWrapper.getSocket(), > + thisTime = pool.write(writeBuffer, socketWrapper.getSocket(), > selector, writeTimeout, true); > } finally { > writeBuffer.clear(); > if ( selector != null ) pool.put(selector); > } > - left -= written; > + written += thisTime; > } > }
This patch fixes my latest problem. (yay!) I'm not sure how I didn't catch the failure to update "offset" in the original patch. Thanks, -chris
signature.asc
Description: OpenPGP digital signature