diff options
| -rw-r--r-- | CHANGES.txt | 9 | ||||
| -rw-r--r-- | repoze/bfg/router.py | 13 |
2 files changed, 16 insertions, 6 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 964ba7fe9..05813cc7a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,12 @@ +Next release +============ + +Big Fixes +--------- + +- Process the response callbacks and the NewResponse event earlier, to + enable mutations to the response to take effect. + 1.3a10 (2010-09-05) =================== diff --git a/repoze/bfg/router.py b/repoze/bfg/router.py index 277ee559b..f976dfea2 100644 --- a/repoze/bfg/router.py +++ b/repoze/bfg/router.py @@ -144,6 +144,13 @@ class Router(object): attrs['exception'] = why response = view_callable(why, request) + # process the response + + if request.response_callbacks: + request._process_response_callbacks(response) + + has_listeners and registry.notify(NewResponse(request, response)) + try: headers = response.headerlist app_iter = response.app_iter @@ -153,12 +160,6 @@ class Router(object): 'Non-response object returned from view named %s ' '(and no renderer): %r' % (view_name, response)) - if request.response_callbacks: - request._process_response_callbacks(response) - - # process the response - has_listeners and registry.notify(NewResponse(request, response)) - start_response(status, headers) return app_iter |
