--- 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));
}
}