[ZPatterns] Help

Rob Miller ra@burningman.com
Wed, 23 Jul 2003 12:30:40 -0700


Alexander Demidov wrote:
> Hello everyone!
> 
> I need a help.
> I've stoped on "Create the Specialists" of "ZPatterns Howto" 
> http://www.zope.org/Members/upfront/zpatterns_howto.stx
> 
> " ... 
> 3. Browse to the Addresses Specialist, go to its Racks tab, browse to the 
> defaultRack and go its Storage tab. The time has come to marry the DataSkin 
> to its Rack. Select ContactDirectory: Address for the option "Class for 
> stored items". ..."
> 
> If I click "Storage tab", I am getting an error (See the attachment). All 
> products are installed properly, when I look at Products folder.

hmmm... this doesn't look pretty, and it's not something i've seen over 
the last two years of zpatterns usage.  my first guess is that there is 
a corrupted object in the ZODB... perhaps you might consider deleting 
the specialist altogether and then attempting to recreate it.

also, i notice references to ZClass modules in the traceback.  had you 
already created a DataSkin ZClass and associated it with this specialist 
before this error started occurring?  have you ever been able to access 
the Storage tab, or did this happen on your first attempt?

-r


> 
> I use Zope 2.6.1 Debian system.
> 
> Thanks.
>  
> 
> 
> ------------------------------------------------------------------------
> 
> Traceback (innermost last):
>   Module ZPublisher.Publish, line 98, in publish
>   Module ZPublisher.mapply, line 88, in mapply
>   Module ZPublisher.Publish, line 39, in call_object
>   Module Shared.DC.Scripts.Bindings, line 252, in __call__
>   Module Shared.DC.Scripts.Bindings, line 283, in _bindAndExec
>   Module App.special_dtml, line 174, in _exec
>   Module DocumentTemplate.DT_In, line 625, in renderwob
>   Module Products.ZPatterns.DataManagers, line 104, in manage_product_zclass_info
>   Module Products.ZPatterns.DataManagers, line 92, in _unifiedZClassRegistry
>   Module Products.PlugIns.PlugIns, line 678, in unifiedZClassRegistry
>   Module Products.ZPatterns.DataManagers, line 86, in _zclassOK
>   Module ZODB.Connection, line 534, in setstate
>   Module ZODB.Connection, line 192, in _persistent_load
>    - __traceback_info__:   Module ZODB.Connection, line 131, in __getitem__
>    - __traceback_info__: ('\x00\x00\x00\x00\x00\x013\x8b', '(cExtensionClass\nExtensionClass\nq\x01(U\x0borderedListq\x02(cZClasses.ZClass\nPersistentClass\nq\x03cZClasses.ObjectManager\nObjectManager\nq\x04cOFS.SimpleItem\nSimpleItem\nq\x05tq\x06}q\x07(U\x13update_unorder_listq\x08(U\x08\x00\x00\x00\x00\x00\x013\x99q\t(U\x0fZClasses.Methodq\nU\x03MWpq\x0bttq\x0cQU\n_p_changedq\rK\x01U\x07__doc__q\x0eU@A class containg methods for returnig an ordered List of Objectsq\x0fU\x16default_display_objectq\x10(U\x08\x00\x00\x00\x00\x00\x013\x9aq\x11(h\nU\x03MWpq\x12ttq\x13QU\x0bmoveUpOrderq\x14(U\x08\x00\x00\x00\x00\x00\x013\x9bq\x15(h\nU\x03MWpq\x16ttq\x17QU\x0emoveAllToOrderq\x18(U\x08\x00\x00\x00\x00\x00\x013\x9cq\x19(h\nU\x03MWpq\x1attq\x1bQU\rmoveDownOrderq\x1c(U\x08\x00\x00\x00\x00\x00\x013\x9dq\x1d(h\nU\x03MWpq\x1ettq\x1fQU\x0bmoveToOrderq (U\x08\x00\x00\x00\x00\x00\x013\x9eq!(h\nU\x03MWpq"ttq#QU\x06_p_oidq$U\x08\x00\x00\x00\x00\x00\x00\t\xdeq%U\x10display_variableq&U\x04ite
mq\'U\tmeta_typeq(U\x0bOrderedListq)U\nmeta_typesq*(}q+(U\nvisibilityq,U\x06Globalq-U\ninterfacesq.]q/(cInterface.iclass\nInterface\nq0oq1}q2(U\x11_Interface__attrsq3}q4(U\nhttp__etagq5(cInterface.Method\nMethod\nq6o}q7(U\x07__doc__q8T:\x03\x00\x00        Entity tags are used for comparing two or more entities from\n        the same requested resource.  Predominantly used for Caching,\n        Etags can also be used to deal with the \'Lost Updates Problem\'.\n        An HTTP Client such as Amaya that supports PUT for editing can\n        use the Etag value returned in the head of a GET response in the\n        \'if-match\' header submitted with a PUT request.  If the Etag\n        for the requested resource in the PUT request\'s \'if-match\' header\n        is different from the current Etag value returned by this method,\n        the PUT will fail (it means that the state of the resource has\n        changed since the last copy the Client recieved) because the\n        preco
ndition (the \'if-match\') fails (the submitted Etag does not\n        match the current Etag).\n        q9U\x08optionalq:}q;U\x08requiredq<)U\x08__name__q=U\nhttp__etagq>U\tinterfaceq?U\x11EtagBaseInterfaceq@U\x07varargsqANU\x06kwargsqBNU\npositionalqC)ubU\x11http__refreshEtagqD(h6o}qE(h8T\x17\x02\x00\x00        While it may make sense to use the ZODB Object Id or\n        bobobase_modification_time to generate an Etag, this could\n        fail on certain REQUESTS because:\n\n         o The object is not stored in the ZODB, or\n\n         o A Request such as PUT changes the oid or bobobase_modification_time\n           *AFTER* the Response has been written out, but the Etag needs\n           to be updated and returned with the Response of the PUT request.\n\n        Thus, Etags need to be refreshed manually when an object changes.\n        qFh:}qGh<)h=U\x11http__refreshEtagqHh?h@hANhBNhC)ubuh8U\x8f    Basic Etag support interface, meaning the object supports generating\n    
an Etag that can be used by certain HTTP and WebDAV Requests.\n    qIU\t__bases__qJ((h0oqK}qL(h3}qMh8U\x00hJ)h=U\tInterfaceqNubth=h@ubaU\x10container_filterqONU\x06actionqPU*manage_addProduct/ExternalMethod/methodAddqQU\npermissionqRU\x14Add External MethodsqSU\x04nameqTU\x0fExternal MethodqUU\x07productqVU\x0eExternalMethodqWU\x08instanceqXcProducts.ExternalMethod.ExternalMethod\nExternalMethod\nqYu}qZ(h,h-h.]q[(h0oq\\}q](h3}q^(U\nwl_getLockq_(h6o}q`(h8U6 Returns the locktoken identified by the locktokenuri qah:}qbh<(U\tlocktokenqctqdh=U\nwl_getLockqeh?U\x12WriteLockInterfaceqfhANhBNhChdubU\rwl_lockValuesqg(h6o}qh(h8U_ Returns a sequence of locks.  if \'killinvalids\' is true,\n        invalid locks will be deletedqih:}qjU\x0ckillinvalidsqkK\x00sh<)h=U\rwl_lockValuesqlh?hfhANhBNhC(hktubU\rwl_lockTokensqm(h6o}qn(h8Ue Returns a sequence of lock tokens.  if \'killinvalids\' is true,\n        invalid locks will be deletedqoh:}qphkK\x00sh<)h=U\rwl_lockTokensqqh?hfhANhBNhC(hktubU\
nwl_hasLockqr(h6o}qs(h8UU Returns true if the lock identified by the token is attached\n        to the object. qth:}quhkK\x00sh<(U\x05tokenqvth=U\nwl_hasLockqwh?hfhANhBNhC(hvhktubU\x0bwl_isLockedqx(h6o}qy(h8Uh Returns true if \'self\' is locked at all.  If invalid locks\n        still exist, they should be deleted.qzh:}q{h<)h=U\x0bwl_isLockedq|h?hfhANhBNhC)ubU\nwl_setLockq}(h6o}q~(h8U\xef Store the LockItem, \'lock\'.  The locktoken will be used to fetch\n        and delete the lock.  If the lock exists, this MUST\n        overwrite it if all of the values except for the \'timeout\' on the\n        old and new lock are the same. q\x7fh:}q\x80h<(hcU\x04lockq\x81tq\x82h=U\nwl_setLockq\x83h?hfhANhBNhCh\x82ubU\rwl_clearLocksq\x84(h6o}q\x85(h8Uc Deletes ALL DAV locks on the object - should only be called\n        by lock management machinery. q\x86h:}q\x87h<)h=U\rwl_clearLocksq\x88h?hfhANhBNhC)ubU\x0cwl_lockItemsq\x89(h6o}q\x8a(h8U\xa1 Returns (key, value) pairs of locktoken, lock
.\n\n        if \'killinvalids\' is true, invalid locks (locks whose timeout\n        has been exceeded) will be deletedq\x8bh:}q\x8chkK\x00sh<)h=U\x0cwl_lockItemsq\x8dh?hfhANhBNhC(hktubU\nwl_delLockq\x8e(h6o}q\x8f(h8U6 Deletes the locktoken identified by the locktokenuri q\x90h:}q\x91h<(hctq\x92h=U\nwl_delLockq\x93h?hfhANhBNhCh\x92ubuh8T\xd6\x03\x00\x00    This represents the basic protocol needed to support the write lock\n    machinery.\n\n    It must be able to answer the questions:\n\n     o Is the object locked?\n\n     o Is the lock owned by the current user?\n\n     o What lock tokens are associated with the current object?\n\n     o What is their state (how long until they\'re supposed to time out?,\n       what is their depth?  what type are they?\n\n    And it must be able to do the following:\n\n     o Grant a write lock on the object to a specified user.\n\n       - *If lock depth is infinite, this must also grant locks on **all**\n         subobjects, or fail al
together*\n\n     o Revoke a lock on the object.\n\n       - *If lock depth is infinite, this must also revoke locks on all\n         subobjects*\n\n    **All methods in the WriteLock interface that deal with checking valid\n    locks MUST check the timeout values on the lockitem (ie, by calling\n    \'lockitem.isValid()\'), and DELETE the lock if it is no longer valid**\n\n    q\x94hJ(hKth=hfubahONhPU manage_addProduct/OFSP/methodAddq\x95hRU Add Documents, Images, and Filesq\x96hTU\x0bDTML Methodq\x97hVU\x04OFSPq\x98hXcOFS.DTMLMethod\nDTMLMethod\nq\x99u}q\x9a(h,h-h.]q\x9bh\\ahONhPU"manage_addProduct/OFSP/documentAddq\x9chRh\x96hTU\rDTML Documentq\x9dhVh\x98hXcOFS.DTMLDocument\nDTMLDocument\nq\x9eu}q\x9f(h,h-h.]q\xa0h\\ahONhPU+manage_addProduct/PythonScripts/pyScriptAddq\xa1hRU\x12Add Python Scriptsq\xa2hTU\x0fScript (Python)q\xa3hVU\rPythonScriptsq\xa4hXcProducts.PythonScripts.PythonScript\nPythonScript\nq\xa5u}q\xa6(h,h-h.]q\xa7h\\ahONhPU!manage_addProduct/ZSQLMethods/addq\
xa8hRU\x14Add Database Methodsq\xa9hTU\x0cZ SQL Methodq\xaahVU\x0bZSQLMethodsq\xabhXcProducts.ZSQLMethods.SQL\nSQL\nq\xacutq\xadU\x0epropertysheetsq\xaeU\x08\x00\x00\x00\x00\x00\x013\x9fq\xafQU\x0esetZopeObjectsq\xb0(U\x08\x00\x00\x00\x00\x00\x013\xa0q\xb1(h\nU\x03MWpq\xb2ttq\xb3QU\x07getListq\xb4(U\x08\x00\x00\x00\x00\x00\x013\xa1q\xb5(h\nU\x03MWpq\xb6ttq\xb7QU\x0cdefault_listq\xb8(U\x08\x00\x00\x00\x00\x00\x013\xa2q\xb9(h\nU\x03MWpq\xbattq\xbbQU\tcheckListq\xbc(U\x08\x00\x00\x00\x00\x00\x013\xa3q\xbd(h\nU\x03MWpq\xbettq\xbfQU\x12__ac_permissions__q\xc0)U\rmoveToUnorderq\xc1(U\x08\x00\x00\x00\x00\x00\x013\xa4q\xc2(h\nU\x03MWpq\xc3ttq\xc4QU\x0bcall_methodq\xc5(U\x08\x00\x00\x00\x00\x00\x013\xa5q\xc6(h\nU\x03MWpq\xc7ttq\xc8QU\x05titleq\xc9U\x00U\nziconImageq\xca(U\x08\x00\x00\x00\x00\x00\x013\xa9q\xcb(U\tOFS.Imageq\xccU\x05Imageq\xcdttq\xceQU\x04iconq\xcfU9Control_Panel/Products/OrderedList/orderedList/ziconImageq\xd0U\t_p_serialq\xd1U\x08\x03IX\x97\x19.\x8e\xccq\xd2U\tunorder
edq\xd3]q\xd4U\rmoveLastOrderq\xd5(U\x08\x00\x00\x00\x00\x00\x013\xa7q\xd6(h\nU\x03MWpq\xd7ttq\xd8QU\x0emoveFirstOrderq\xd9(U\x08\x00\x00\x00\x00\x00\x013\xa6q\xda(h\nU\x03MWpq\xdbttq\xdcQU\x14isPrincipiaFolderishq\xddU\x01YU\x19update_private_propertiesq\xde(U\x08\x00\x00\x00\x00\x00\x013\xa8q\xdf(h\nU\x03MWpq\xe0ttq\xe1QU\x18default_display_functionq\xe2NU\x14_v_manage_path_rolesq\xe3U\x17OrderedList/orderedListq\xe4U\x0emanage_optionsq\xe5(}q\xe6(U\x05labelq\xe7U\x05Orderq\xe8U\x04helpq\xe9(U\x0bOrderedListq\xeaU\x05orderq\xebtU\x06actionq\xecU\x0cmanage_orderq\xedu}q\xee(U\x05labelq\xefU\x08Contentsq\xf0U\x04helpq\xf1(h\xeaU\x08contentsq\xf2thPU\x0bmanage_mainq\xf3u}q\xf4(h\xe7U\nPropertiesq\xf5h\xe9(h\xeaU\npropertiesq\xf6th\xecU\x1bpropertysheets/Basic/manageq\xf7u}q\xf8(h\xe7U\x08Securityq\xf9h\xecU\rmanage_accessq\xfau}q\xfb(h\xe7U\x04Undoq\xfch\xecU\x0fmanage_UndoFormq\xfdu}q\xfe(h\xe7U\tOwnershipq\xffh\xecU\x0cmanage_ownerr\x00\x01\x00\x00utr\x01\x01\x00\x00U\x1asql
_returned_mapping_fieldr\x02\x01\x00\x00U\x00U\x15default_list_functionr\x03\x01\x00\x00NU\x0cZope_Objectsr\x04\x01\x00\x00K\x01U\x07orderedr\x05\x01\x00\x00]r\x06\x01\x00\x00U\ngetMethodsr\x07\x01\x00\x00(U\x08\x00\x00\x00\x00\x00\x013\xaar\x08\x01\x00\x00(h\nU\x03MWpr\t\x01\x00\x00ttr\n\x01\x00\x00QU\n__module__r\x0b\x01\x00\x00U\x19*Z/s1C/1KEWKTSFyDMeK+5Q==r\x0c\x01\x00\x00U\x0cmanage_orderr\r\x01\x00\x00(U\x08\x00\x00\x00\x00\x00\x013\xabr\x0e\x01\x00\x00(h\nU\x03MWpr\x0f\x01\x00\x00ttr\x10\x01\x00\x00QU\x10moveAllToUnorderr\x11\x01\x00\x00(U\x08\x00\x00\x00\x00\x00\x013\xacr\x12\x01\x00\x00(h\nU\x03MWpr\x13\x01\x00\x00tr\x14\x01\x00\x00tr\x15\x01\x00\x00Qutr\x16\x01\x00\x00t.N.')
> Could not load oid 
> 
> 
> ------------------------------------------------------------------------
> 
>    	
> 															
>  *Log* <manage_main>  	 *Undo* <manage_UndoForm>  	 *Ownership* 
> <manage_owner>  	 *Security* <manage_access> 
> 			
> 			
> 
> 
> * Site Error Log at  / </manage_workspace>error_log 
> </error_log/manage_workspace> * 
> </manage_addProduct/ZMIBookmarks/bookmark_list?add=/error_log>
> 	
> Help! 
> <http://localhost:9673/HelpSys?help_url=/Control_Panel/Products/OFSP/Help/>
> 
> 
>       Exception traceback
> 
> Time 	2003/07/21 22:18:49.876 GMT+6
> User Name (User Id) 	sasha (sasha)
> Request URL 
> http://localhost:9673/ContactDirectory/Addresses/defaultRack/manage_storageForm 
> 
> Exception Type 	Could not load oid