Chris McDonough
2011-06-21 c724f039d58f2c126594b7a644a0de1b97e17910
refs
author Chris McDonough <chrism@plope.com>
Tuesday, June 21, 2011 08:18 +0200
committer Chris McDonough <chrism@plope.com>
Tuesday, June 21, 2011 08:18 +0200
commitc724f039d58f2c126594b7a644a0de1b97e17910
tree 2aeab8be28041d84fe3e114e0a7f3ef214cd603b tree | zip | gz
parent 83549e631fe28e8e3b0b0274d0e631f1ebebd205 view | diff
- The pyramid Router attempted to set a value into the key
``environ['repoze.bfg.message']`` when it caught a view-related exception
for backwards compatibility with :mod:`repoze.bfg` during error handling.
It did this by using code that looked like so::

# "why" is an exception object
try:
msg = why[0]
except:
msg = ''

environ['repoze.bfg.message'] = msg

Use of the value ``environ['repoze.bfg.message']`` was docs-deprecated in
Pyramid 1.0. Our standing policy is to not remove features after a
deprecation for two full major releases, so this code was originally slated
to be removed in Pyramid 1.2. However, computing the
``repoze.bfg.message`` value was the source of at least one bug found in
the wild (https://github.com/Pylons/pyramid/issues/199), and there isn't a
foolproof way to both preserve backwards compatibility and to fix the bug.
Therefore, the code which sets the value has been removed in this release.
Code in exception views which relies on this value's presence in the
environment should now use the ``exception`` attribute of the request
(e.g. ``request.exception[0]``) to retrieve the message instead of relying
on ``request.environ['repoze.bfg.message']``.

Closes #199.
2 files modified
40 ■■■■ changed files
CHANGES.txt 32 ●●●●● diff | view | raw | blame | history
pyramid/router.py 8 ●●●●● diff | view | raw | blame | history