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

Reply via email to