[Checkins] SVN: Products.CMFCore/trunk/Products/CMFCore/URLTool.py - added fallback for bootstrap

Yvo Schubbe y.2011 at wcm-solutions.de
Mon Oct 10 10:10:24 EST 2011


Log message for revision 123047:
  - added fallback for bootstrap

Changed:
  U   Products.CMFCore/trunk/Products/CMFCore/URLTool.py

-=-
Modified: Products.CMFCore/trunk/Products/CMFCore/URLTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/URLTool.py	2011-10-10 15:09:33 UTC (rev 123046)
+++ Products.CMFCore/trunk/Products/CMFCore/URLTool.py	2011-10-10 15:10:24 UTC (rev 123047)
@@ -14,10 +14,12 @@
 """
 
 from AccessControl.SecurityInfo import ClassSecurityInfo
+from Acquisition import aq_inner
+from Acquisition import aq_parent
 from App.class_init import InitializeClass
 from App.special_dtml import DTMLFile
 from OFS.SimpleItem import SimpleItem
-from zope.component import getUtility
+from zope.component import queryUtility
 from zope.globalrequest import getRequest
 from zope.interface import implements
 from ZPublisher.BaseRequest import RequestContainer
@@ -73,7 +75,11 @@
         """ Get the portal object itself.
         """
         request_container = RequestContainer(REQUEST=getRequest())
-        return getUtility(ISiteRoot).__of__(request_container)
+        portal_obj = queryUtility(ISiteRoot)
+        if portal_obj is None:
+            # fallback for bootstrap
+            portal_obj = aq_parent(aq_inner(self))
+        return portal_obj.__of__(request_container)
 
     security.declarePublic('getRelativeContentPath')
     def getRelativeContentPath(self, content):



More information about the checkins mailing list