I am +1 on this. I suspect that before committing, though, we should ask people who make use of Zope's transaction manager in "advanced" ways like Phillip Eby. - C On Sun, 2003-02-02 at 10:40, Dieter Maurer wrote:
The new behaviour would look something like this:
## request starts transaction.begin() try: object= REQUEST.traverse(...) mapply(object,...) transaction.commit() except: transaction.abort() transaction.begin() transaction.note('%s (application error handling)' % '/'.join(object.getPhysicalPath) ) try: handle_error() transaction.commit() except: default_handle_error() # Zope's default error handling # it should not have side effects # and is executed inside the # error handling transaction transaction.abort() ## request ends