[Zope] zcatalog & keyerror 30

Jon Cheyne jonathan@home-all.org.uk
Sun, 28 May 2000 12:24:42 +0100


Hi. Looked for but couldn't find any documentation on what these errors 
mean exactly. I cannot consistently reproduce them but they occur after 
editing a catalog aware zclass instance when you change indexed fields. 
The trace back is below. Both are resolved if you manually update the 
catalog - the edits are accepted but clearly the catalog is not fully 
updating.

My zclass follows the various howtos and uses reindex_object.

The 31 error I _can_ reproduce: when the zclass renders itself it 
includes an edit me link - the page footer lists (in slashdot style) 
other documents in the catalog. Once one document is selected, all the 
other links now referenced via the current document (aquisition?) thus 
the full name of the document on screen after a few clicks could be
  /db/doc1/db/doc2/db/doc3.

It is when you edit a document in this state that produces the error. If 
you edit it when the name in the address bar is just /db/doc3 then it is 
fine.

The keyerror 30 happens under either condition and not always.

Neither error occurs when documents are created for the first time.

I am kinda stuck here ...

Jonathan


the traceback .... Zope Error Zope has encountered an error while 
publishing this resource. KeyError Sorry, a Zope error occurred. 
Traceback (innermost last): File /home/zope/Zope-2.1.6-linux2- 
x86/lib/python/ZPublisher/Publish.py, line 214, in publish_module File 
/home/zope/Zope-2.1.6-linux2- x86/lib/python/ZPublisher/Publish.py, line 
179, in publish File 
/home/zope/Zope-2.1.6-linux2-x86/lib/python/Zope/__init__.py, line 202, 
in zpublisher_exception_hook (Object: ApplicationDefaultPermissions) 
File /home/zope/Zope-2.1.6-linux2- x86/lib/python/ZPublisher/Publish.py, 
line 165, in publish File /home/zope/Zope-2.1.6-linux2- 
x86/lib/python/ZPublisher/mapply.py, line 160, in mapply (Object: 
index_html) File /home/zope/Zope-2.1.6-linux2- 
x86/lib/python/ZPublisher/Publish.py, line 102, in call_object (Object: 
index_html) File 
/home/zope/Zope-2.1.6-linux2-x86/lib/python/OFS/DTMLMethod.py, line 150, 
in __call__ (Object: index_html) File /home/zope/Zope-2.1.6-linux2- 
x86/lib/python/DocumentTemplate/DT_String.py, line 502, in __call__ 
(Object: index_html) File 
/home/zope/Zope-2.1.6-linux2-x86/lib/python/OFS/DTMLMethod.py, line 146, 
in __call__ (Object: standard_html_footer) File 
/home/zope/Zope-2.1.6-linux2- 
x86/lib/python/DocumentTemplate/DT_String.py, line 502, in __call__ 
(Object: standard_html_footer) File /home/zope/Zope-2.1.6-linux2- 
x86/lib/python/Products/Renderable/Renderable.py, line 17, in __str__ 
(Object: CatalogAware) File 
/home/zope/Zope-2.1.6-linux2-x86/lib/python/OFS/DTMLMethod.py, line 150, 
in __call__ (Object: render) File /home/zope/Zope-2.1.6-linux2- 
x86/lib/python/DocumentTemplate/DT_String.py, line 502, in __call__ 
(Object: render) File /home/zope/Zope-2.1.6-linux2- 
x86/lib/python/DocumentTemplate/DT_In.py, line 493, in renderwb (Object: 
Catalog.searchResults(type=box_type)) File /home/zope/Zope-2.1.6-linux2- 
x86/lib/python/DocumentTemplate/DT_In.py, line 710, in sort_sequence 
(Object: Catalog.searchResults(type=box_type)) File 
/home/zope/Zope-2.1.6-linux2- x86/lib/python/Products/ZCatalog/Lazy.py, 
line 190, in __getitem__ File /home/zope/Zope-2.1.6-linux2- 
x86/lib/python/Products/ZCatalog/Catalog.py, line 181, in __getitem__ 
KeyError: 30