From f1bef7514e5ff517819a5ba89cb3594b1a6db179 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Fri, 12 Oct 2012 15:51:44 -0700 Subject: [PATCH] Making shell termination more error prone --HG-- branch : 1.x --- .../Environment/DefaultOrchardShell.cs | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/Orchard/Environment/DefaultOrchardShell.cs b/src/Orchard/Environment/DefaultOrchardShell.cs index d2a97e809..826ec5b8c 100644 --- a/src/Orchard/Environment/DefaultOrchardShell.cs +++ b/src/Orchard/Environment/DefaultOrchardShell.cs @@ -56,15 +56,22 @@ namespace Orchard.Environment { } public void Terminate() { - using (var events = _eventsFactory()) { - try { - events.Value.Terminating(); - } - catch { - // ignore exceptions while terminating the application - } + SafelyTerminate(() => { + using (var events = _eventsFactory()) { + SafelyTerminate(() => events.Value.Terminating()); + } + }); - _sweepGenerator.Terminate(); + SafelyTerminate(() => _sweepGenerator.Terminate()); + } + + + private void SafelyTerminate(Action action) { + try { + action(); + } + catch(Exception e) { + Logger.Error(e, "An unexcepted error occured while terminating the Shell"); } } }