At 01:06 PM 6/23/00 +0800, mike wrote:
There _IS_ a problem. Maybe _v_cachedAttr is not a guilty, but do you know it exists only in newly created objects and do _not_ exists in old?.
The attribute cache is created only when used in a transaction, so if you retrieve a persistent object from a Rack and immediately dump its dictionary, the cache will not exist.
Anyway, newly created DataSkin instances return wrong REQUEST (and other things) but _old_ retrieved ones work good. I tell you this because it is impossible to obtain AUTHENTICATE_USER from fresh DataSkins, so things like 'manage_tabs' just do not work properly. Try set up Rack for any real ZClass and you see this.
I'm not currently seeing this, but the work Ty and I are doing with Racks at present involves objects which are not actually stored in the ZODB, so perhaps we're missing a bug with things that are stored in the ZODB, like the last one you found. But as far as I know, Rack.getItem() should always return an object whose acquisition context is the Specialist.
If you'd like I send you complete test suite reproducing the situation.
Please do. Thanks.