From 63f22b055b716c51d06723148b0793245404bd7c Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Tue, 22 Apr 2014 19:02:45 +0200 Subject: [PATCH] Properly deal with exceptions in CheckerComponent::ExecuteCheckHelper. Refs #4865 --- components/checker/checkercomponent.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/components/checker/checkercomponent.cpp b/components/checker/checkercomponent.cpp index 4ae5df1c4..3cc5f2cc9 100644 --- a/components/checker/checkercomponent.cpp +++ b/components/checker/checkercomponent.cpp @@ -199,7 +199,21 @@ void CheckerComponent::ExecuteCheckHelper(const Checkable::Ptr& checkable) try { checkable->ExecuteCheck(); } catch (const std::exception& ex) { - Log(LogCritical, "checker", "Exception occured while checking '" + checkable->GetName() + "': " + DiagnosticInformation(ex)); + CheckResult::Ptr cr = make_shared(); + cr->SetState(ServiceUnknown); + + String output = "Exception occured while checking '" + checkable->GetName() + "': " + DiagnosticInformation(ex); + cr->SetOutput(output); + + double now = Utility::GetTime(); + cr->SetScheduleStart(now); + cr->SetScheduleEnd(now); + cr->SetExecutionStart(now); + cr->SetExecutionEnd(now); + + checkable->ProcessCheckResult(cr); + + Log(LogCritical, "checker", output); } { -- 2.40.0