SVN: ZODB/branches/jim-saner-invalidate-and-deactivate/src/ZODB/ Change the code for creating loading ghost objects to call

Jim Fulton <[email protected]>
Newsgroups gmane.comp.python.zope.zodb.cvs
Message-ID <[email protected]>
Log message for revision 103216:
  Change the code for creating loading ghost objects to call
  _p_invalidate rather than setting _p_changed to None, since the intent
  is to guarentee the object is a ghost and an object might have
  overridden _p_deactivate with a pass to avoid being deactivated soley
  for optimization reasons.
  

Changed:
  U   ZODB/branches/jim-saner-invalidate-and-deactivate/src/ZODB/Connection.py
  U   ZODB/branches/jim-saner-invalidate-and-deactivate/src/ZODB/tests/testConnection.py

-=-
Modified: ZODB/branches/jim-saner-invalidate-and-deactivate/src/ZODB/Connection.py
===================================================================
--- ZODB/branches/jim-saner-invalidate-and-deactivate/src/ZODB/Connection.py	2009-08-26 08:05:31 UTC (rev 103215)
+++ ZODB/branches/jim-saner-invalidate-and-deactivate/src/ZODB/Connection.py	2009-08-26 08:05:36 UTC (rev 103216)
@@ -255,7 +255,7 @@
         self._pre_cache[oid] = obj
         obj._p_oid = oid
         obj._p_jar = self
-        obj._p_changed = None
+        obj._p_invalidate()
         obj._p_serial = serial
         self._pre_cache.pop(oid)
         self._cache[oid] = obj
@@ -702,7 +702,7 @@
         if obj is None:
             return
         if serial == ResolvedSerial:
-            del obj._p_changed # transition from changed to ghost
+            obj._p_invalidate() # transition from changed to ghost
         else:
             if change:
                 obj._p_changed = 0 # transition from changed to up-to-date

Modified: ZODB/branches/jim-saner-invalidate-and-deactivate/src/ZODB/tests/testConnection.py
===================================================================
--- ZODB/branches/jim-saner-invalidate-and-deactivate/src/ZODB/tests/testConnection.py	2009-08-26 08:05:31 UTC (rev 103215)
+++ ZODB/branches/jim-saner-invalidate-and-deactivate/src/ZODB/tests/testConnection.py	2009-08-26 08:05:36 UTC (rev 103216)
@@ -662,10 +662,11 @@
         # sanity check
         self.assert_(cache.total_estimated_size >= 0)
 
-
 class class_that_ignores_deactivate(Persistent):
-    def _p_deactivate(self): pass
 
+    def _p_deactivate(self):
+        pass
+
 def loading_objects_that_ignore_deactivate_bug_185066():
     """See https://bugs.launchpad.net/bugs/185066
 
@@ -677,7 +678,12 @@
     >>> conn2 = db.open()
     >>> conn2.root.c.x
     1
+    >>> oid = conn2.root.c._p_oid
 
+    >>> conn3 = db.open()
+    >>> conn3.get(oid).x
+    1
+
     """
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.