Patch MultiHook
for downgrades from Zope 2.5 to Zope 2.4/2.3.
Zope 2.5 inserts an instance of SessionTraverser
as a before publishing
traverse function into the Application object's root. When Zope 2.4 attempts
to use this as a before publishing traverse method, an error is raised because
the MultiHook is actually trying to call a broken
object (because there
is no such class SessionTraverser
in Zope 2.4, and Zope inserts "broken"
objects for persistent objects that it can't find on the filesystem).
As broken
objects have no __call__ method, the symptom shows itself as
an 'AttributeError: __call__ in line 171 of BeforeTraverse.py.
This patch causes the error to be logged but not raised to the application
layer.
Install this like any other Product and restart your Zope.