[Zope] Transparent Folders curse strikes again: A play in two acts

Itai Tavor itai@optusnet.com.au
Sun, 22 Jul 2001 20:28:49 +1000


Hi,

I've just been bitten with a Transparent Folder bug for the fourth 
time. A Folder containting a Transparent Folder becomes itself 
transparent, with the result that my whole ZODB is now a mess of 
acquired objects that pretty much prevent anything from working 
right. In the past the only way I found to clear the problem was to 
delete the Transparent Folders, export everything, reimport and 
recreate the TFs. But if it's just going to happen again, what's the 
point?

Last time it happened I posted a message about it, which resulted in 
absolutely nothing happening. I don't get it... I'm sure I'm not the 
only one using Transparent Folders (or am I?)... how come nobody else 
suffers from this? And it's not like I'm doing anything really 
unusual... I just create a few TFs, throw in some methods and keep 
working happily, and at some point everything becomes transparent.

Please someone tell me you know something about this, so I don't have 
to give up on TFs and rebuild my entire ZODB...


Update:

I just installed TF 0.3.2, just to be safe. Then I wrote a method 
that traversed the whole object tree and checked all Folders for a 
_is_transparent property. Didn't find any. So far so good. Then I 
changed it to print _transparent_object_ids for all objects that got 
that property. Sure enough, Folders which contain TFs appear in the 
list of their parent Folders. Well, at least it's not an obscure, 
Itai-is-just-making-it-up kind of problem. I got proof!

Ok, I added a line to set _transparent_object_ids to () unless a 
Folder really contains TFs. Problem gone. But do I believe it won't 
come back? Not for a minute.

So, the question now, for anyone who understands the TF patch code, 
is: how do these (very non-transparent) Folders get into the list, 
and how do I ensure they don't get back on the list any time they 
feel like it, without having to run this test method every day?


Itai
-- 
--
Itai Tavor                      -- "Je sautille, donc je suis."    --
itai@optusnet.com.au            --               - Kermit the Frog --
--                                                                 --
-- "If you haven't got your health, you haven't got anything"      --