From 3d12f28fb488ec61b8ae69773f849cfcdfa66e15 Mon Sep 17 00:00:00 2001 From: Meyn Date: Sat, 27 Dec 2025 01:04:58 +0100 Subject: [PATCH] SQUASH in restart loop --- .../Messaging/Events/EventAggregator.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/NzbDrone.Core/Messaging/Events/EventAggregator.cs b/src/NzbDrone.Core/Messaging/Events/EventAggregator.cs index c3c59b8be..f8d590268 100644 --- a/src/NzbDrone.Core/Messaging/Events/EventAggregator.cs +++ b/src/NzbDrone.Core/Messaging/Events/EventAggregator.cs @@ -7,6 +7,7 @@ using NzbDrone.Common.EnsureThat; using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.Messaging; +using NzbDrone.Common.Reflection; using NzbDrone.Common.TPL; namespace NzbDrone.Core.Messaging.Events @@ -56,9 +57,9 @@ public void PublishEvent(TEvent @event) var eventName = GetEventName(@event.GetType()); - if (_runtimeInfo.IsExiting && Attribute.IsDefined(@event.GetType(), typeof(LifecycleEventAttribute))) + if (_runtimeInfo.IsExiting && @event.GetType().HasAttribute()) { - _logger.Debug("Event {0} blocked due to application shutdown", eventName); + _logger.Warn("Event {0} blocked due to application shutdown", eventName); return; } @@ -86,7 +87,15 @@ public void PublishEvent(TEvent @event) { if (!_eventSubscribers.TryGetValue(eventName, out var target)) { - _eventSubscribers[eventName] = target = new EventSubscribers(_serviceFactory); + try + { + _eventSubscribers[eventName] = target = new EventSubscribers(_serviceFactory); + } + catch (Exception ex) + { + _logger.Warn(ex, "Unable to resolve event subscribers for {0}, container may be disposed", eventName); + return; + } } subscribers = target as EventSubscribers;