Author: markt Date: Thu Aug 20 13:09:27 2015 New Revision: 1696785 URL: http://svn.apache.org/r1696785 Log: Another test for 6.9
Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.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=1696785&r1=1696784&r2=1696785&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Thu Aug 20 13:09:27 2015 @@ -992,8 +992,17 @@ public class Http2UpgradeHandler extends for (Stream stream : streams.values()) { try { stream.incrementWindowSize(diff); - } catch (Http2Exception e) { - // Should never happen since the diff should always be valid + } catch (Http2Exception h2e) { + try { + closeStream(new StreamException(sm.getString( + "upgradeHandler.windowSizeTooBig", connectionId, + stream.getIdentifier()), + h2e.getError(), stream.getIdentifier().intValue())); + } catch (IOException ioe) { + if (log.isDebugEnabled()) { + log.debug(sm.getString("upgradeHandler.socketCloseFailed"), ioe); + } + } } } } else { Modified: tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties?rev=1696785&r1=1696784&r2=1696785&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/coyote/http2/LocalStrings.properties Thu Aug 20 13:09:27 2015 @@ -102,6 +102,7 @@ upgradeHandler.upgrade=Connection [{0}], upgradeHandler.upgrade.fail=Connection [{0}], HTTP/1.1 upgrade failed upgradeHandler.upgradeDispatch.entry=Entry, Connection [{0}], SocketStatus [{1}] upgradeHandler.upgradeDispatch.exit=Exit, Connection [{0}], SocketState [{1}] +upgradeHandler.windowSizeTooBig=Connection [{0}], Stream [{1}], Window size too big upgradeHandler.windowSizeReservationInterrupted=Connection [{0}], Stream [{1}], reservation for [{2}] bytes upgradeHandler.writeBody=Connection [{0}], Stream [{1}], Data length [{2}] upgradeHandler.writeHeaders=Connection [{0}], Stream [{1}] Modified: tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java?rev=1696785&r1=1696784&r2=1696785&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java (original) +++ tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java Thu Aug 20 13:09:27 2015 @@ -255,5 +255,24 @@ public class TestHttp2Section_6_9 extend "3-EndOfStream\n", output.getTrace()); output.clearTrace(); } - // TODO: Remaining 6.9 tests + + + @Test + public void testWindowSizeTooLargeViaSettings() throws Exception { + http2Connect(); + + // Set up stream 3 + sendSimplePostRequest(3, null, false); + + // Increase the flow control window but keep it under the limit + sendWindowUpdate(3, 1 << 30); + + // Now increase beyond the limit via a settings frame + sendSettings(0, false, new SettingValue(4, 1 << 30)); + // Ack + parser.readFrame(true); + Assert.assertEquals("3-RST-[" + Http2Error.FLOW_CONTROL_ERROR.getCode() + "]", + output.getTrace()); + + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org