From 5b29b8cfd8e6201bf6e28dbbaa8af437636e587c Mon Sep 17 00:00:00 2001 From: Christian Kratky Date: Sat, 14 Nov 2020 16:06:43 +0100 Subject: [PATCH] Fix Unit Tests. --- .../Server/MqttClientSessionsManager.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/Source/MQTTnet/Server/MqttClientSessionsManager.cs b/Source/MQTTnet/Server/MqttClientSessionsManager.cs index 811db7d1..6f6cc0f0 100644 --- a/Source/MQTTnet/Server/MqttClientSessionsManager.cs +++ b/Source/MQTTnet/Server/MqttClientSessionsManager.cs @@ -48,9 +48,9 @@ namespace MQTTnet.Server _retainedMessagesManager = retainedMessagesManager ?? throw new ArgumentNullException(nameof(retainedMessagesManager)); } - public void Start(CancellationToken cancellation) + public void Start(CancellationToken cancellationToken) { - Task.Run(() => TryProcessQueuedApplicationMessagesAsync(cancellation), cancellation).Forget(_logger); + Task.Run(() => TryProcessQueuedApplicationMessagesAsync(cancellationToken), cancellationToken).Forget(_logger); } public async Task HandleClientConnectionAsync(IMqttChannelAdapter channelAdapter, CancellationToken cancellationToken) @@ -272,7 +272,20 @@ namespace MQTTnet.Server { cancellationToken.ThrowIfCancellationRequested(); - var queuedApplicationMessage = _messageQueue.Take(cancellationToken); + MqttEnqueuedApplicationMessage queuedApplicationMessage; + try + { + queuedApplicationMessage = _messageQueue.Take(cancellationToken); + } + catch (ArgumentNullException) + { + return; + } + catch (ObjectDisposedException) + { + return; + } + var sender = queuedApplicationMessage.Sender; var senderClientId = sender?.ClientId ?? _options.ClientId; var applicationMessage = queuedApplicationMessage.ApplicationMessage;