Commit b93674ff authored by Tim Peters's avatar Tim Peters

Merge rev 40783 from 3.4 branch.

_setstate():  An MVCC optimization was inadvertently disabled by
fixes for ZClasses.  Repaired.

Elsewhere, repaired English in comments.
parent 0c428355
......@@ -154,6 +154,12 @@ ZopeUndo
a acl_users path together with a username (separated by a space) and this
previous fix failed to take this into account.
Connection
----------
- (3.6b5) An optimization for loading non-current data (MVCC) was
inadvertently disabled in ``_setstate()``; this has been repaired.
Documentation
-------------
......
......@@ -619,8 +619,8 @@ class Connection(ExportImport, object):
self._storage.tpc_abort(transaction)
# Note: If we invalidate a non-justifiable object (i.e. a
# persistent class), the object will immediately reread it's
# Note: If we invalidate a non-ghostifiable object (i.e. a
# persistent class), the object will immediately reread its
# state. That means that the following call could result in a
# call to self.setstate, which, of course, must succeed. In
# general, it would be better if the read could be delayed
......@@ -759,10 +759,8 @@ class Connection(ExportImport, object):
# dict update could go on in another thread, but we don't care
# because we have to check again after the load anyway.
if (obj._p_oid in self._invalidated
and not myhasattr(obj, "_p_independent")
and not self._invalidated
):
if (obj._p_oid in self._invalidated and
not myhasattr(obj, "_p_independent")):
# If the object has _p_independent(), we will handle it below.
self._load_before_or_conflict(obj)
return
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment