[Checkins] SVN: Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/pages.py Handle non-existing oids.

Uli Fouquet uli at gnufix.de
Sat Feb 27 22:08:21 EST 2010


Log message for revision 109492:
  Handle non-existing oids.
  

Changed:
  U   Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/pages.py

-=-
Modified: Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/pages.py
===================================================================
--- Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/pages.py	2010-02-28 01:26:17 UTC (rev 109491)
+++ Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/pages.py	2010-02-28 03:08:19 UTC (rev 109492)
@@ -5,6 +5,7 @@
 from zope.component import getMultiAdapter
 from zope.security.proxy import removeSecurityProxy
 from zope.session.interfaces import ISession
+from ZODB.POSException import POSKeyError
 from ZODB.utils import p64, u64, tid_repr
 from grokui.base import IGrokUIRealm, GrokUIView
 from grokui.zodbbrowser.interfaces import IObjectInfo
@@ -34,9 +35,17 @@
             self.obj = self.context.root
             #self.obj = self.findClosestPersistent()
         if self.obj is None:
+
             oid = p64(int(self.request.get('oid', self.getRootOID()), 0))
             jar = self.jar()
-            self.obj = jar.get(oid)
+            try:
+                self.obj = jar.get(oid)
+            except POSKeyError:
+                # This doesn't work currently...
+                #self.flash(u'OID not found: %s', oid)
+                self.redirect(self.url(self.context, '@@zodbbrowser'))
+                return
+
         self.info = IObjectInfo(self.obj)
         session = ISession(self.request)['grokui.zodbbrowser']
 



More information about the checkins mailing list