From 60d0dab5731c6342fb948257fee1eef92c1dbcdd Mon Sep 17 00:00:00 2001
From: gscalamera <graziano.scalamera@elettra.eu>
Date: Mon, 2 Oct 2017 10:15:09 +0200
Subject: [PATCH] Fixed bug removing alarms

---
 src/AlarmHandler.cpp | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/AlarmHandler.cpp b/src/AlarmHandler.cpp
index 990defc..83883f8 100644
--- a/src/AlarmHandler.cpp
+++ b/src/AlarmHandler.cpp
@@ -3911,24 +3911,26 @@ bool AlarmHandler::do_alarm_eval(string alm_name, string ev_name, Tango::TimeVal
 		o << (alm_name) << ": not found formula in alarm table";
 		WARN_STREAM << "AlarmHandler::"<<__func__<<": " << o.str() << endl;
 		set_internal_alarm(INTERNAL_ERROR, gettime(), o.str());
+#if 0	//TODO: attribute not existing -> cannot notify error pushing exception
 		try
 		{	//DevFailed for push events
 			Tango::DevErrorList errors(1);
 			errors.length(1);
-			it->second.ex_reason = string("NOT_FOUND");
-			it->second.ex_desc = ev_name + ": " + o.str();
-			it->second.ex_origin = ev_name;
-			errors[0].desc = CORBA::string_dup(it->second.ex_desc.c_str());
+			string ex_reason = string("NOT_FOUND");
+			string ex_desc = ev_name + ": " + o.str();
+			string ex_origin = ev_name;
+			errors[0].desc = CORBA::string_dup(ex_desc.c_str());
 			errors[0].severity = Tango::ERR;
-			errors[0].reason = CORBA::string_dup(it->second.ex_reason.c_str());
-			errors[0].origin = CORBA::string_dup(it->second.ex_origin.c_str());
+			errors[0].reason = CORBA::string_dup(ex_reason.c_str());
+			errors[0].origin = CORBA::string_dup(ex_origin.c_str());
 			Tango::DevFailed except(errors);
-			push_change_event(it->second.attr_name, &except);
-			push_archive_event(it->second.attr_name, &except);
+			//push_change_event(it->second.attr_name, &except);
+			//push_archive_event(it->second.attr_name, &except);
 		} catch(Tango::DevFailed & ex)
 		{
 			WARN_STREAM << "AlarmHandler::"<<__func__<<": EXCEPTION PUSHING EVENTS: " << ex.errors[0].desc << endl;
 		}
+#endif
 	}
 	alarms.vlock->readerOut();
 	return 	changed;
-- 
GitLab