[Checkins] SVN: Products.CMFCore/branches/matthewwilkes-traversalprecedence/Products/CMFCore/traverser.py Make the aq rewrapping in a try to handle non-acquirable objects

Matthew Wilkes matthew at matthewwilkes.co.uk
Mon Aug 17 08:04:54 EDT 2009


Log message for revision 102871:
  Make the aq rewrapping in a try to handle non-acquirable objects

Changed:
  U   Products.CMFCore/branches/matthewwilkes-traversalprecedence/Products/CMFCore/traverser.py

-=-
Modified: Products.CMFCore/branches/matthewwilkes-traversalprecedence/Products/CMFCore/traverser.py
===================================================================
--- Products.CMFCore/branches/matthewwilkes-traversalprecedence/Products/CMFCore/traverser.py	2009-08-17 11:37:43 UTC (rev 102870)
+++ Products.CMFCore/branches/matthewwilkes-traversalprecedence/Products/CMFCore/traverser.py	2009-08-17 12:04:54 UTC (rev 102871)
@@ -50,10 +50,16 @@
             # No __bobo_traverse__
             # Try with an unacquired attribute:
             try:
-                subobject = object.__getattribute__(name).aq_base.__of__(object)
+                subobject = object.__getattribute__(name)
             except AttributeError:
                 # this is not a direct object
                 pass
+            else:
+                try:
+                    subobject = subobject.aq_base.__of__(object)
+                except (AttributeError, TypeError):
+                    pass # We can't aq wrap whatever this is
+                
             
             
             if subobject is None:



More information about the Checkins mailing list