From acbf9153f43b96c956e28bf41a6bf05cfa4da7a4 Mon Sep 17 00:00:00 2001 From: Jan Eggers Date: Thu, 9 Nov 2017 11:06:50 +0100 Subject: [PATCH] fixed the other timing issue --- MQTTnet.Core/Server/MqttClientSession.cs | 6 ++++-- Tests/MQTTnet.Core.Tests/MqttServerTests.cs | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/MQTTnet.Core/Server/MqttClientSession.cs b/MQTTnet.Core/Server/MqttClientSession.cs index fb859b8f..cbdfc73f 100644 --- a/MQTTnet.Core/Server/MqttClientSession.cs +++ b/MQTTnet.Core/Server/MqttClientSession.cs @@ -94,9 +94,11 @@ namespace MQTTnet.Core.Server } finally { - if (_willMessage != null) + var willMessage = _willMessage; + if (willMessage != null) { - _sessionsManager.DispatchApplicationMessage(this, _willMessage); + _willMessage = null; //clear willmessage so it is send just once + _sessionsManager.DispatchApplicationMessage(this, willMessage); } } } diff --git a/Tests/MQTTnet.Core.Tests/MqttServerTests.cs b/Tests/MQTTnet.Core.Tests/MqttServerTests.cs index fc252678..7fdaa3d3 100644 --- a/Tests/MQTTnet.Core.Tests/MqttServerTests.cs +++ b/Tests/MQTTnet.Core.Tests/MqttServerTests.cs @@ -76,6 +76,8 @@ namespace MQTTnet.Core.Tests await c2.DisconnectAsync(); await Task.Delay(1000); + + await c1.DisconnectAsync(); } finally {