[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).