~barry/mailman/events-and-web

« back to all changes in this revision

Viewing changes to src/mailman/core/runner.py

  • Committer: Barry Warsaw
  • Date: 2012-05-14 15:20:51 UTC
  • mfrom: (7153.1.2 3.0)
  • Revision ID: barry@list.org-20120514152051-35zp5apf0hajibzl
trunk merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
from cStringIO import StringIO
33
33
from lazr.config import as_boolean, as_timedelta
34
34
from zope.component import getUtility
 
35
from zope.event import notify
35
36
from zope.interface import implementer
36
37
 
37
38
from mailman.config import config
39
40
from mailman.core.switchboard import Switchboard
40
41
from mailman.interfaces.languages import ILanguageManager
41
42
from mailman.interfaces.listmanager import IListManager
42
 
from mailman.interfaces.runner import IRunner
 
43
from mailman.interfaces.runner import IRunner, RunnerCrashEvent
43
44
from mailman.utilities.string import expand
44
45
 
45
46
 
216
217
            language = mlist.preferred_language
217
218
        with _.using(language.code):
218
219
            msgdata['lang'] = language.code
219
 
            keepqueued = self._dispose(mlist, msg, msgdata)
 
220
            try:
 
221
                keepqueued = self._dispose(mlist, msg, msgdata)
 
222
            except Exception as error:
 
223
                # Trigger the Zope event and re-raise
 
224
                notify(RunnerCrashEvent(self, mlist, msg, msgdata, error))
 
225
                raise
220
226
        if keepqueued:
221
227
            self.switchboard.enqueue(msg, msgdata)
222
228