From 19fa89ca395de269c2430ba93bb662f33416f611 Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Fri, 21 Mar 2025 09:42:52 +1100 Subject: [PATCH 1/3] fix null ref in Audit (#4894) fixes #4893 --- src/ServiceControl.Audit/Auditing/AuditIngestor.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/ServiceControl.Audit/Auditing/AuditIngestor.cs b/src/ServiceControl.Audit/Auditing/AuditIngestor.cs index f783a61dea..8f6f453bdb 100644 --- a/src/ServiceControl.Audit/Auditing/AuditIngestor.cs +++ b/src/ServiceControl.Audit/Auditing/AuditIngestor.cs @@ -70,8 +70,7 @@ public async Task Ingest(List contexts, CancellationToken cancel Task Forward(IReadOnlyCollection messageContexts, string forwardingAddress, CancellationToken cancellationToken) { - var transportOperations = new TransportOperation[messageContexts.Count]; //We could allocate based on the actual number of ProcessedMessages but this should be OK - var index = 0; + var transportOperations = new List(); MessageContext anyContext = null; foreach (var messageContext in messageContexts) { @@ -90,13 +89,12 @@ Task Forward(IReadOnlyCollection messageContexts, string forward // Forwarded messages should last as long as possible outgoingMessage.Headers.Remove(Headers.TimeToBeReceived); - transportOperations[index] = new TransportOperation(outgoingMessage, new UnicastAddressTag(forwardingAddress)); - index++; + transportOperations.Add(new TransportOperation(outgoingMessage, new UnicastAddressTag(forwardingAddress))); } return anyContext != null ? messageDispatcher.Value.Dispatch( - new TransportOperations(transportOperations), + new TransportOperations(transportOperations.ToArray()), anyContext.TransportTransaction, cancellationToken) : Task.CompletedTask; } From a2b2ce80aaf5baee1a1d3c3797149efe8d726bc1 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Thu, 20 Mar 2025 18:46:09 -0400 Subject: [PATCH 2/3] Specify list capacity to avoid resizing --- src/ServiceControl.Audit/Auditing/AuditIngestor.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ServiceControl.Audit/Auditing/AuditIngestor.cs b/src/ServiceControl.Audit/Auditing/AuditIngestor.cs index 8f6f453bdb..9d0b828d9c 100644 --- a/src/ServiceControl.Audit/Auditing/AuditIngestor.cs +++ b/src/ServiceControl.Audit/Auditing/AuditIngestor.cs @@ -70,7 +70,7 @@ public async Task Ingest(List contexts, CancellationToken cancel Task Forward(IReadOnlyCollection messageContexts, string forwardingAddress, CancellationToken cancellationToken) { - var transportOperations = new List(); + var transportOperations = new List(messageContexts.Count); MessageContext anyContext = null; foreach (var messageContext in messageContexts) { From a7ad9a2feb699d0256650226222ffd231c590391 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Thu, 20 Mar 2025 18:53:19 -0400 Subject: [PATCH 3/3] Use collection expression --- src/ServiceControl.Audit/Auditing/AuditIngestor.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ServiceControl.Audit/Auditing/AuditIngestor.cs b/src/ServiceControl.Audit/Auditing/AuditIngestor.cs index 9d0b828d9c..bf48d23e96 100644 --- a/src/ServiceControl.Audit/Auditing/AuditIngestor.cs +++ b/src/ServiceControl.Audit/Auditing/AuditIngestor.cs @@ -94,7 +94,7 @@ Task Forward(IReadOnlyCollection messageContexts, string forward return anyContext != null ? messageDispatcher.Value.Dispatch( - new TransportOperations(transportOperations.ToArray()), + new TransportOperations([.. transportOperations]), anyContext.TransportTransaction, cancellationToken) : Task.CompletedTask; }