[SCM] morituri/master: * morituri/common/task.py: Add exception traceback for easier debugging.

js at users.alioth.debian.org js at users.alioth.debian.org
Sun Oct 19 20:09:20 UTC 2014


The following commit has been merged in the master branch:
commit babf47ec1dfca1ec1a43a15f16aa138fdb6fee5d
Author: Thomas Vander Stichele <thomas (at) apestaart (dot) org>
Date:   Fri Jun 18 21:52:20 2010 +0000

    	* morituri/common/task.py:
    	  Add exception traceback for easier debugging.

diff --git a/ChangeLog b/ChangeLog
index dc1ec89..259ecc8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-06-18  Thomas Vander Stichele  <thomas at apestaart dot org>
+
+	* morituri/common/task.py:
+	  Add exception traceback for easier debugging.
+
 2010-05-23  Thomas Vander Stichele  <thomas at apestaart dot org>
 
 	* morituri.spec.in:
diff --git a/morituri/common/task.py b/morituri/common/task.py
index cf4cc70..9adb31f 100644
--- a/morituri/common/task.py
+++ b/morituri/common/task.py
@@ -62,6 +62,7 @@ class Task(object, log.Loggable):
     runner = None
     exception = None
     exceptionMessage = None
+    exceptionTraceback = None
 
     _listeners = None
 
@@ -124,11 +125,15 @@ class Task(object, log.Loggable):
 
         self.exception = exception
         self.exceptionMessage = line
+        self.exceptionTraceback = traceback.format_exc()
         self.debug('set exception, %r' % self.exceptionMessage)
 
     def setException(self, exception):
+        import traceback
+
         self.exception = exception
         self.exceptionMessage = log.getExceptionMessage(exception)
+        self.exceptionTraceback = traceback.format_exc()
         self.debug('set exception, %r' % self.exceptionMessage)
 
     def addListener(self, listener):
@@ -386,8 +391,12 @@ class SyncRunner(TaskRunner, ITaskListener):
         if task.exception:
             # catch the exception message
             # FIXME: this gave a traceback in the logging module
-            self.debug('raising exception, %r', task.exceptionMessage)
-            raise TaskException(task.exception, message=task.exceptionMessage)
+            self.debug('raising TaskException for %r, %r' % (
+                task.exceptionMessage, task.exceptionTraceback))
+            msg = task.exceptionMessage
+            if task.exceptionTraceback:
+                msg += "\n" + task.exceptionTraceback
+            raise TaskException(task.exception, message=msg)
 
     def _startWrap(self, task):
         # wrap task start such that we can report any exceptions and

-- 
morituri packaging



More information about the pkg-multimedia-commits mailing list