Regression: async execution runtimes set the negotiated protocol version in the execution context at the wrong point of request execution

This commit is contained in:
Oleg Kalnichevski 2022-11-19 14:43:06 +01:00
parent 9cde791f35
commit 2f87e4a6b7
2 changed files with 3 additions and 3 deletions

View File

@ -102,7 +102,6 @@ class InternalH2AsyncExecRuntime implements AsyncExecRuntime {
if (log.isDebugEnabled()) {
log.debug("{} acquired endpoint", id);
}
context.setProtocolVersion(HttpVersion.HTTP_2);
callback.completed(InternalH2AsyncExecRuntime.this);
}
@ -237,6 +236,7 @@ class InternalH2AsyncExecRuntime implements AsyncExecRuntime {
if (log.isDebugEnabled()) {
log.debug("{} start execution {}", ConnPoolSupport.getId(endpoint), id);
}
context.setProtocolVersion(HttpVersion.HTTP_2);
session.enqueue(
new RequestExecutionCommand(exchangeHandler, pushHandlerFactory, complexCancellable, context),
Command.Priority.NORMAL);
@ -254,6 +254,7 @@ class InternalH2AsyncExecRuntime implements AsyncExecRuntime {
if (log.isDebugEnabled()) {
log.debug("{} start execution {}", ConnPoolSupport.getId(endpoint), id);
}
context.setProtocolVersion(HttpVersion.HTTP_2);
session.enqueue(
new RequestExecutionCommand(exchangeHandler, pushHandlerFactory, complexCancellable, context),
Command.Priority.NORMAL);

View File

@ -465,7 +465,6 @@ public class PoolingAsyncClientConnectionManager implements AsyncClientConnectio
LOG.debug("{} connected {}", ConnPoolSupport.getId(endpoint), ConnPoolSupport.getId(connection));
}
final ProtocolVersion protocolVersion = connection.getProtocolVersion();
context.setProtocolVersion(protocolVersion);
final Timeout socketTimeout = connectionConfig.getSocketTimeout();
if (socketTimeout != null) {
connection.setSocketTimeout(socketTimeout);
@ -521,7 +520,6 @@ public class PoolingAsyncClientConnectionManager implements AsyncClientConnectio
@Override
public void completed(final ProtocolIOSession protocolIOSession) {
context.setProtocolVersion(HttpVersion.HTTP_2);
if (callback != null) {
callback.completed(endpoint);
}
@ -750,6 +748,7 @@ public class PoolingAsyncClientConnectionManager implements AsyncClientConnectio
if (LOG.isDebugEnabled()) {
LOG.debug("{} executing exchange {} over {}", id, exchangeId, ConnPoolSupport.getId(connection));
}
context.setProtocolVersion(connection.getProtocolVersion());
connection.submitCommand(
new RequestExecutionCommand(exchangeHandler, pushHandlerFactory, context),
Command.Priority.NORMAL);