[Zope-dev] Zope 2.4.2 Error
Matthew T. Kromer
matt@zope.com
Tue, 23 Oct 2001 10:19:35 -0400
E. Seifert wrote:
>Hi list,
>
>I just installed the 2.4.2 update over my Linux Zope 2.4.1 and I get the
>following traceback:
>
>Traceback (innermost last):
>[...]
>
>
> (Object: standard_html_header)
> File /usr/local/zope/lib/python/Products/Renderable/Renderable.py, line
>17, in __str__
> (Object: standard_site_menue)
> File /usr/local/zope/lib/python/OFS/DTMLMethod.py, line 195, in __call__
> (Object: render)
> File /usr/local/zope/lib/python/DocumentTemplate/DT_String.py, line 546,
>in __call__
> (Object: render)
> File /usr/local/zope/lib/python/DocumentTemplate/DT_In.py, line 770, in
>renderwob
> (Object: objectValues(['SimpleNav Element']))
> File /usr/local/zope/lib/python/Products/Renderable/Renderable.py, line
>17, in __str__
> (Object: ab)
> File /usr/local/zope/lib/python/OFS/DTMLMethod.py, line 203, in __call__
> (Object: render)
>KeyError: validate
>
>Is there someone who can help me?
>
>TIA
>Erich
>
Hi Erich,
Sorry it took me so long to read Zope-dev and see this question.
There's a section in lib/python/OFS/DTMLMethod.py which was changed in
2.4.2 to accelerate DTML security processing, but it doesn't look like a
subsequent patch to make it handle reentry was routed to 2.4 yet.
(Actually, I think it's waiting in a dev branch, because it's not on
the trunk yet either.) For the time being, what you can do is comment
out both lines in DTMLMethod.py which read
self.__dict__['validate'] = security.DTMLValidate
and
del self.__dict__['validate']
It looks like the renderable product you're using is causing the
DTMLMethod to be reentered, which is tripping out this bug (ie you can
only delete validate once -- the second time it fails).