Re: [Zope-dev] Broken objects

2005-09-29 Thread Jim Fulton

Victor Safronovich wrote:

Hello zope-dev!

 http://www.zope.org/Collectors/Zope/1911
 
 I try to migrate my old database from zope 2.6.1.


 I  have Broken objects, but it is impossible to get its state in Zope 2.8.
 In Zope 2.6 Broken objects have states, what i uses to migrate its.
 I think this is because DB.classFactory is overrided to use
 OFS.Uninstalled.BrokenClass, which is bad persistent class.

 the __dict__ of all my Broken objects equals to {'_p_changed':None}.

 my_object._p_mtime does not load it`s state.


Could you tell me more about what you want to happen?

I'm not sure what was happening with state in Zope 2.7, despite the
fact that I wrote that code.  It would be helpful if you could
remind me what the behavior was.

In Zope 2.8, which is to ay ZODB 3.3 and later, the intent is that the
broken objects should provide access to the original state via
the attribute __Broken_state__.  I guess this state isn't being
loaded.  I'll write a test and fix as necessary to make sure it is.

Jim

--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Broken objects

2005-09-29 Thread Jim Fulton

So I guess it didn't work. :)

I'll look into this.  The first step will be to write a test for this.
The intent was definately that you would be able to get to a broken object's
state.

Jim

Victor Safronovich wrote:

Hello Jim Fulton,

Thursday, September 29, 2005, 2:57:47 PM, you wrote:

JF> Victor Safronovich wrote:


Hello zope-dev!

http://www.zope.org/Collectors/Zope/1911

I try to migrate my old database from zope 2.6.1.

I  have Broken objects, but it is impossible to get its state in Zope 2.8.
In Zope 2.6 Broken objects have states, what i uses to migrate its.
I think this is because DB.classFactory is overrided to use
OFS.Uninstalled.BrokenClass, which is bad persistent class.

the __dict__ of all my Broken objects equals to {'_p_changed':None}.

my_object._p_mtime does not load it`s state.



JF> Try setting _p_changed=1.
  object.__dict__ equals to {'_p_changed':1}

JF> Or try accessing some other attribute.
  object.data

  AttributeError('data') raise by OFS.Uninstalled.Broken.__getattr__

Inheritance tree of class BrokenClass:

  + OFS.Uninstalled.BrokenClass
+ __builtin__.ExplicitAcquirer
  + ExtensionClass.Base
- __builtin__.object
+ OFS.SimpleItem.Item
  + ExtensionClass.Base
- __builtin__.object
  + webdav.Resource.Resource
+ ExtensionClass.Base
  - __builtin__.object
+ webdav.Lockable.LockableItem
  - webdav.EtagSupport.EtagSupport
  + OFS.CopySupport.CopySource
+ ExtensionClass.Base
  - __builtin__.object
  + App.Management.Tabs
+ ExtensionClass.Base
  - __builtin__.object
  - OFS.Traversable.Traversable
  + OFS.ZDOM.Element
- OFS.ZDOM.Node
  + AccessControl.Owned.Owned
+ ExtensionClass.Base
  - __builtin__.object
  + App.Undo.UndoSupport
+ ExtensionClass.Base
  - __builtin__.object
+ Persistence.Persistent
  + persistent.Persistent
- __builtin__.object
  + ExtensionClass.Base
- __builtin__.object

Contradictions of inherited attributes in class BrokenClass:

  __delattr__ (wrapper_descriptor)
+ OFS.Uninstalled.BrokenClass
  + __builtin__.ExplicitAcquirer
+ ExtensionClass.Base
  @ __builtin__.object
  + OFS.SimpleItem.Item
+ ExtensionClass.Base
  # __builtin__.object
+ webdav.Resource.Resource
  + ExtensionClass.Base
# __builtin__.object
+ OFS.CopySupport.CopySource
  + ExtensionClass.Base
# __builtin__.object
+ App.Management.Tabs
  + ExtensionClass.Base
# __builtin__.object
+ AccessControl.Owned.Owned
  + ExtensionClass.Base
# __builtin__.object
+ App.Undo.UndoSupport
  + ExtensionClass.Base
# __builtin__.object
  + Persistence.Persistent
# persistent.Persistent
  # __builtin__.object
+ ExtensionClass.Base
  # __builtin__.object

  __getattribute__ (wrapper_descriptor)
+ OFS.Uninstalled.BrokenClass
  + __builtin__.ExplicitAcquirer
@ ExtensionClass.Base
  # __builtin__.object
  + OFS.SimpleItem.Item
# ExtensionClass.Base
  # __builtin__.object
+ webdav.Resource.Resource
  # ExtensionClass.Base
# __builtin__.object
+ OFS.CopySupport.CopySource
  # ExtensionClass.Base
# __builtin__.object
+ App.Management.Tabs
  # ExtensionClass.Base
# __builtin__.object
+ AccessControl.Owned.Owned
  # ExtensionClass.Base
# __builtin__.object
+ App.Undo.UndoSupport
  # ExtensionClass.Base
# __builtin__.object
  # Persistence.Persistent
# persistent.Persistent
  # __builtin__.object
# ExtensionClass.Base
  # __builtin__.object

  __setattr__ (wrapper_descriptor)
+ OFS.Uninstalled.BrokenClass
  + __builtin__.ExplicitAcquirer
+ ExtensionClass.Base
  @ __builtin__.object
  + OFS.SimpleItem.Item
+ ExtensionClass.Base
  # __builtin__.object
+ webdav.Resource.Resource
  + ExtensionClass.Base
# __builtin__.object
+ OFS.CopySupport.CopySource
  + ExtensionClass.Base
# __builtin__.object
+ App.Management.Tabs
  + ExtensionClass.Base
# __builtin__.object
+ AccessControl.Owned.Owned
  + ExtensionClass.Base
# __builtin__.object
+ App.Undo.UndoSupport
  + ExtensionClass.Base
# __builtin__.object
  + Persistence.Persistent
# persistent.Persistent
  # __builtin__.object
+ ExtensionClass.Base
  # __builtin__.object

  __setstate__ (method_descriptor)
+ OFS.Uninstalled.BrokenClass
  + __builtin__.ExplicitAcquirer
@ ExtensionClass.Base
  + OFS.SimpleItem.Item
 

Re: [Zope-dev] Broken objects

2005-09-29 Thread Jim Fulton

Victor Safronovich wrote:

Hello zope-dev!

 http://www.zope.org/Collectors/Zope/1911
 
 I try to migrate my old database from zope 2.6.1.


 I  have Broken objects, but it is impossible to get its state in Zope 2.8.
 In Zope 2.6 Broken objects have states, what i uses to migrate its.
 I think this is because DB.classFactory is overrided to use
 OFS.Uninstalled.BrokenClass, which is bad persistent class.

 the __dict__ of all my Broken objects equals to {'_p_changed':None}.

 my_object._p_mtime does not load it`s state.


Try setting _p_changed=1.

Or try accessing some other attribute.

If that doesn't work, let me know and I'll look into it.

Jim

--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Broken objects

2005-09-29 Thread Chris Withers

Victor Safronovich wrote:

 I  have Broken objects, but it is impossible to get its state in Zope 2.8.
 In Zope 2.6 Broken objects have states, what i uses to migrate its.


I think that was more by luck than by design, but maybe whoever made the 
change can help you out...



 I think this is because DB.classFactory is overrided to use
 OFS.Uninstalled.BrokenClass, which is bad persistent class.


What makes it a "bad persisten class"?


 the __dict__ of all my Broken objects equals to {'_p_changed':None}.


That seems fair...


 my_object._p_mtime does not load it`s state.


What makes you think it should?

Chris

--
Simplistix - Content Management, Zope & Python Consulting
   - http://www.simplistix.co.uk
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )