Merge lp:~mkanat/loggerhead/bad-revno-404 into lp:loggerhead

Proposed by Max Kanat-Alexander
Status: Merged
Approved by: Michael Hudson-Doyle
Approved revision: 444
Merged at revision: 444
Proposed branch: lp:~mkanat/loggerhead/bad-revno-404
Merge into: lp:loggerhead
Diff against target: 31 lines (+8/-2)
1 file modified
loggerhead/controllers/__init__.py (+8/-2)
To merge this branch: bzr merge lp:~mkanat/loggerhead/bad-revno-404
Reviewer Review Type Date Requested Status
Michael Hudson-Doyle Approve
Review via email: mp+45800@code.launchpad.net

Description of the change

This prevents throwing a traceback (thus causing an OOPS on launchpad) when somebody picks an invalid revision on almost any page of loggerhead.

We now simply return a 404 instead.

To post a comment you must log in.
Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote :

Thanks :-)

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'loggerhead/controllers/__init__.py'
2--- loggerhead/controllers/__init__.py 2010-12-03 17:11:21 +0000
3+++ loggerhead/controllers/__init__.py 2011-01-11 00:38:12 +0000
4@@ -17,9 +17,11 @@
5 # along with this program; if not, write to the Free Software
6 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
7
8+import bzrlib.errors
9 import os
10 import time
11
12+from paste.httpexceptions import HTTPNotFound
13 from paste.request import path_info_pop, parse_querystring
14
15 from loggerhead import util
16@@ -139,9 +141,13 @@
17 if h is None:
18 return None
19 if len(self.args) > 0 and self.args != ['']:
20- return h.fix_revid(self.args[0])
21+ try:
22+ revid = h.fix_revid(self.args[0])
23+ except bzrlib.errors.NoSuchRevision:
24+ raise HTTPNotFound;
25 else:
26- return h.last_revid
27+ revid = h.last_revid
28+ return revid
29
30 def tree_for(self, file_id, revid):
31 file_revid = self._history.get_inventory(revid)[file_id].revision

Subscribers

People subscribed via source and target branches