Skip to content

Commit d9d0a46

Browse files
committed
[dotnet] Fix race condition for .net framework when internal tracing is enabled
1 parent e2fc5e8 commit d9d0a46

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

dotnet/src/webdriver/Remote/HttpCommandExecutor.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ public DiagnosticsHttpHandler(HttpMessageHandler messageHandler, ILogger logger)
440440
/// <returns>The http response message content.</returns>
441441
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
442442
{
443-
var responseTask = base.SendAsync(request, cancellationToken);
443+
var response = await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
444444

445445
StringBuilder requestLogMessageBuilder = new();
446446
requestLogMessageBuilder.AppendFormat(">> {0} RequestUri: {1}, Content: {2}, Headers: {3}",
@@ -451,20 +451,27 @@ protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage
451451

452452
if (request.Content != null)
453453
{
454+
#if NET8_0_OR_GREATER
455+
var requestContent = await request.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false);
456+
#else
454457
var requestContent = await request.Content.ReadAsStringAsync().ConfigureAwait(false);
458+
#endif
455459
requestLogMessageBuilder.AppendFormat("{0}{1}", Environment.NewLine, requestContent);
456460
}
457461

458462
_logger.Trace(requestLogMessageBuilder.ToString());
459463

460-
var response = await responseTask.ConfigureAwait(false);
461-
462464
StringBuilder responseLogMessageBuilder = new();
463465
responseLogMessageBuilder.AppendFormat("<< StatusCode: {0}, ReasonPhrase: {1}, Content: {2}, Headers: {3}", (int)response.StatusCode, response.ReasonPhrase, response.Content, response.Headers?.Count());
464466

465467
if (!response.IsSuccessStatusCode && response.Content != null)
466468
{
469+
#if NET8_0_OR_GREATER
470+
var responseContent = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false);
471+
#else
467472
var responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
473+
#endif
474+
468475
responseLogMessageBuilder.AppendFormat("{0}{1}", Environment.NewLine, responseContent);
469476
}
470477

0 commit comments

Comments
 (0)