Author: tack
Date: Sun Apr 15 18:28:37 2007
New Revision: 2622

Modified:
   trunk/base/src/notifier/async.py
   trunk/base/src/notifier/jobserver.py
   trunk/base/src/notifier/thread.py
   trunk/base/src/notifier/yieldfunc.py

Log:
Pass exc_info triplet in any exception raised asynchronously and log full
traceback in default async exception handler.


Modified: trunk/base/src/notifier/async.py
==============================================================================
--- trunk/base/src/notifier/async.py    (original)
+++ trunk/base/src/notifier/async.py    Sun Apr 15 18:28:37 2007
@@ -33,6 +33,8 @@
 
 # python imports
 import logging
+import traceback
+import sys
 
 # kaa.notifier imports
 from callback import Signal
@@ -81,7 +83,7 @@
         done because it raised an exception.
         """
         if self.exception_handler.count() == 0:
-            log.error('InProgress exception: %s', e)
+            log.error('InProgress exception: %s', 
''.join(traceback.format_exception(*e._exc_info)))
         # store result
         self.is_finished = True
         self._exception = e

Modified: trunk/base/src/notifier/jobserver.py
==============================================================================
--- trunk/base/src/notifier/jobserver.py        (original)
+++ trunk/base/src/notifier/jobserver.py        Sun Apr 15 18:28:37 2007
@@ -177,8 +177,9 @@
             job._server = None
             try:
                 MainThreadCallback(job.finished, job._callback())()
-            except:
-                MainThreadCallback(job.exception, sys.exc_info()[1])()
+            except Exception, e:
+                e._exc_info = sys.exc_info()
+                MainThreadCallback(job.exception, e)()
         # server stopped
         log.debug('stop thread %s' % self.name)
 

Modified: trunk/base/src/notifier/thread.py
==============================================================================
--- trunk/base/src/notifier/thread.py   (original)
+++ trunk/base/src/notifier/thread.py   Sun Apr 15 18:28:37 2007
@@ -240,5 +240,6 @@
         except Exception, e:
             log.exception('mainthread callback')
             # set exception in callback
+            e._exc_info = sys.exc_info()
             callback._set_exception(e)
     return True

Modified: trunk/base/src/notifier/yieldfunc.py
==============================================================================
--- trunk/base/src/notifier/yieldfunc.py        (original)
+++ trunk/base/src/notifier/yieldfunc.py        Sun Apr 15 18:28:37 2007
@@ -225,6 +225,7 @@
             result = None
         except Exception, e:
             log.exception('YieldFunction')
+            e._exc_info = sys.exc_info()
             self.exception(e)
             return False
         if result == YieldContinue:

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to