From b9f8f67ce5160610b6adcc011c86e61698034f79 Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Tue, 22 Nov 2011 22:51:33 +0100
Subject: [PATCH] print and ignore exceptions raised in an event handler.

---
 src/common/ged.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/common/ged.py b/src/common/ged.py
index 15586d987d..72920f05e6 100644
--- a/src/common/ged.py
+++ b/src/common/ged.py
@@ -25,6 +25,8 @@ Global Events Dispatcher module.
 :license: GPL
 '''
 
+import traceback
+
 import logging
 log = logging.getLogger('gajim.c.ged')
 
@@ -85,5 +87,10 @@ class GlobalEventsDispatcher(object):
         log.debug('%s\nArgs: %s'%(event_name, str(args)))
         if event_name in self.handlers:
             for priority, handler in self.handlers[event_name]:
-                if handler(*args, **kwargs):
-                    return True
+                try:
+                    if handler(*args, **kwargs):
+                        return True
+                except Exception, e:
+                    log.error('Error while running an even handler: %s' % \
+                        handler)
+                    traceback.print_exc()
-- 
GitLab