Author: markt Date: Fri Jun 12 17:20:46 2015 New Revision: 1685136 URL: http://svn.apache.org/r1685136 Log: writeBody() log the actual length being written rather than the size of the data remaining in the buffer.
allocate() don't update leftToAllocate until the allocation loop has completed Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1685136&r1=1685135&r2=1685136&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Fri Jun 12 17:20:46 2015 @@ -456,7 +456,7 @@ public class Http2UpgradeHandler extends void writeBody(Stream stream, ByteBuffer data, int len, boolean finished) throws IOException { if (log.isDebugEnabled()) { log.debug(sm.getString("upgradeHandler.writeBody", connectionId, stream.getIdentifier(), - Integer.toString(data.remaining()))); + Integer.toString(len))); } synchronized (socketWrapper) { byte[] header = new byte[9]; @@ -628,6 +628,7 @@ public class Http2UpgradeHandler extends // Use an Iterator so fully allocated children/recipients can be // removed. Iterator<AbstractStream> iter = recipients.iterator(); + int allocated = 0; while (iter.hasNext()) { AbstractStream recipient = iter.next(); int share = leftToAllocate * recipient.getWeight() / totalWeight; @@ -643,8 +644,9 @@ public class Http2UpgradeHandler extends if (remainder > 0) { iter.remove(); } - leftToAllocate -= (share - remainder); + allocated += (share - remainder); } + leftToAllocate -= allocated; } return 0; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org