--- ZopeProfiler.py~ 2005-03-26 11:09:23.000000000 +0100 +++ ZopeProfiler.py 2005-06-27 19:53:31.000000000 +0200 @@ -379,6 +379,17 @@ s= l.get('self') gP= getattr(s,'getPhysicalPath',None) if gP is None: return + # Try to work around a problem with funny classes returning + # instances of itself for "getPhysicalPath". + # "xmlrpclib._Method" is such a funny class + # Problem reported by "Pperegrina@Lastminute.com" + # + # Note that a clean fix would require interfaces with + # a specific interface indicating that "getPhysicalPath" is + # the method we expect. + s_class = getattr(s, '__class__', None) + gpp_class = getattr(s, '__class__', None) + if s_class is not None and s_class is gpp_class: return p= gP() if type(p) is StringType: fi= p else: fi= '/'.join(p)