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: [email protected]
For additional commands, e-mail: [email protected]