src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java
branchhttp-client-branch
changeset 56227 278e1c6c3e99
parent 56205 f4c9c5920141
child 56252 e4b05854c51f
--- a/src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java	Fri Mar 02 10:18:48 2018 +0000
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java	Fri Mar 02 15:14:03 2018 +0000
@@ -792,13 +792,16 @@
     {
         assert frame.streamid() == 0;
         if (!frame.getFlag(SettingsFrame.ACK)) {
-            int oldWindowSize = serverSettings.getParameter(INITIAL_WINDOW_SIZE);
             int newWindowSize = frame.getParameter(INITIAL_WINDOW_SIZE);
-            int diff = newWindowSize - oldWindowSize;
-            if (diff != 0) {
-                windowController.adjustActiveStreams(diff);
+            if (newWindowSize != -1) {
+                int oldWindowSize = serverSettings.getParameter(INITIAL_WINDOW_SIZE);
+                int diff = newWindowSize - oldWindowSize;
+                if (diff != 0) {
+                    windowController.adjustActiveStreams(diff);
+                }
             }
-            serverSettings = frame;
+
+            serverSettings.update(frame);
             sendFrame(new SettingsFrame(SettingsFrame.ACK));
         }
     }