src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/Http2Connection.java
branchhttp-client-branch
changeset 55852 32f6aefec11e
parent 55806 e8bc8370f528
child 55923 67a9df429e0b
--- a/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/Http2Connection.java	Wed Nov 22 10:15:53 2017 +0000
+++ b/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/Http2Connection.java	Wed Nov 22 11:21:36 2017 +0000
@@ -628,9 +628,9 @@
                     decodeHeaders((HeaderFrame) frame, decoder);
                 }
 
-                // To avoid looping, an endpoint MUST NOT send a RST_STREAM in
-                // response to a RST_STREAM frame.
-                if (!(frame instanceof ResetFrame)) {
+                int sid = frame.streamid();
+                if (sid >= nextstreamid && !(frame instanceof ResetFrame)) {
+                    // otherwise the stream has already been reset/closed
                     resetStream(streamid, ResetFrame.PROTOCOL_ERROR);
                 }
                 return;