[Zope] Key Error in Catalog Reindex

Dieter Maurer dieter at handshake.de
Tue Jan 23 13:16:06 EST 2007


KJZZ Webmaster wrote at 2007-1-23 10:13 -0700:
>  File "X:\SomePath\Zope-2.8.1-final\lib\python\OFS\DTMLMethod.py", line
>153, in __call__
>    del self.__dict__['validate']
>KeyError: 'validate'
>
>Does this get us any closer to understanding the problem, or should we take
>another approach?

Yes. At least, this line can cause a "KeyError", even without
assuming that we have a very strange "__dict__".

On the other hand, when you look at the code in "DTMLMethod",
you will see that deleting 'validate' is controlled
by the local variable 'first_time_through".
And "first_time_through" is set to "1", if 'validated' was
defined by this call and to "0", when 'validated' was
already there.

Thus, locally, this looks quite safe.
This implies that what you see indicates that something
non-local is tempering with the "DTMLMethod"'s 'validate'.

I cannot tell you what this "non-local" is but
I have a workaround for you (you must modify the code, however).
You can prepend an "if 'validate' in self.__dict__:" before
the "del self.__dict__['validate']".



-- 
Dieter


More information about the Zope mailing list