Restored first-close-and-remove-then-notify ordering that was changed with the changes for #5310.
This is important in tests that check that streams have been removed from sessions after counting down a latch in the notification. Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
This commit is contained in:
parent
df3a32601a
commit
eb00ac2dde
|
@ -63,10 +63,9 @@ public class HTTP2ClientSession extends HTTP2Session
|
|||
else
|
||||
{
|
||||
stream.process(frame, Callback.NOOP);
|
||||
boolean closed = stream.updateClose(frame.isEndStream(), CloseState.Event.RECEIVED);
|
||||
notifyHeaders(stream, frame);
|
||||
if (closed)
|
||||
if (stream.updateClose(frame.isEndStream(), CloseState.Event.RECEIVED))
|
||||
removeStream(stream);
|
||||
notifyHeaders(stream, frame);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -357,10 +357,10 @@ public class HTTP2Stream extends IdleTimeout implements IStream, Callback, Dumpa
|
|||
}
|
||||
}
|
||||
|
||||
boolean closed = updateClose(frame.isEndStream(), CloseState.Event.RECEIVED);
|
||||
notifyData(this, frame, callback);
|
||||
if (closed)
|
||||
if (updateClose(frame.isEndStream(), CloseState.Event.RECEIVED))
|
||||
session.removeStream(this);
|
||||
|
||||
notifyData(this, frame, callback);
|
||||
}
|
||||
|
||||
private void onReset(ResetFrame frame, Callback callback)
|
||||
|
|
|
@ -104,11 +104,10 @@ public class HTTP2ServerSession extends HTTP2Session implements ServerParser.Lis
|
|||
{
|
||||
onStreamOpened(stream);
|
||||
stream.process(frame, Callback.NOOP);
|
||||
boolean closed = stream.updateClose(frame.isEndStream(), CloseState.Event.RECEIVED);
|
||||
if (stream.updateClose(frame.isEndStream(), CloseState.Event.RECEIVED))
|
||||
removeStream(stream);
|
||||
Stream.Listener listener = notifyNewStream(stream, frame);
|
||||
stream.setListener(listener);
|
||||
if (closed)
|
||||
removeStream(stream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -127,10 +126,9 @@ public class HTTP2ServerSession extends HTTP2Session implements ServerParser.Lis
|
|||
if (stream != null)
|
||||
{
|
||||
stream.process(frame, Callback.NOOP);
|
||||
boolean closed = stream.updateClose(frame.isEndStream(), CloseState.Event.RECEIVED);
|
||||
notifyHeaders(stream, frame);
|
||||
if (closed)
|
||||
if (stream.updateClose(frame.isEndStream(), CloseState.Event.RECEIVED))
|
||||
removeStream(stream);
|
||||
notifyHeaders(stream, frame);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue