Skip to content

Commit

Permalink
Various fixes suggested in review
Browse files Browse the repository at this point in the history
  • Loading branch information
jmuchemb committed Jul 6, 2016
1 parent 7e1db13 commit 4d0512f
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 13 deletions.
13 changes: 11 additions & 2 deletions src/ZODB/DemoStorage.py
Expand Up @@ -73,6 +73,7 @@ def __init__(self, name=None, base=None, changes=None,

self._issued_oids = set()
self._stored_oids = set()
self._resolved = []

self._commit_lock = ZODB.utils.Lock()
self._transaction = None
Expand Down Expand Up @@ -116,7 +117,7 @@ def _copy_methods_from_changes(self, changes):
for meth in (
'_lock',
'getSize', 'isReadOnly',
'sortKey', 'tpc_transaction', 'tpc_vote',
'sortKey', 'tpc_transaction',
):
setattr(self, meth, getattr(changes, meth))

Expand Down Expand Up @@ -308,7 +309,8 @@ def store(self, oid, serial, data, version, transaction):

if old != serial:
rdata = self.tryToResolveConflict(oid, old, serial, data)
self.changes.store(oid, old, rdata, '', transaction, True)
self.changes.store(oid, old, rdata, '', transaction)
self._resolved.append(oid)
else:
self.changes.store(oid, serial, data, '', transaction)

Expand Down Expand Up @@ -364,6 +366,13 @@ def tpc_begin(self, transaction, *a, **k):
self.changes.tpc_begin(transaction, *a, **k)
self._transaction = transaction
self._stored_oids = set()
del self._resolved[:]

def tpc_vote(self, *a, **k):
if self.changes.tpc_vote(*a, **k):
raise ZODB.POSException.StorageTransactionError(
"Unexpected resolved conflicts")
return self._resolved

def tpc_finish(self, transaction, func = lambda tid: None):
with self._lock:
Expand Down
4 changes: 1 addition & 3 deletions src/ZODB/FileStorage/FileStorage.py
Expand Up @@ -520,6 +520,7 @@ def store(self, oid, oldserial, data, version, transaction):
if oldserial != committed_tid:
data = self.tryToResolveConflict(oid, committed_tid,
oldserial, data)
self._resolved.append(oid)

pos = self._pos
here = pos + self._tfile.tell() + self._thl
Expand All @@ -534,9 +535,6 @@ def store(self, oid, oldserial, data, version, transaction):
raise FileStorageQuotaError(
"The storage quota has been exceeded.")

if old and oldserial != committed_tid:
self._resolved.append(oid)

def deleteObject(self, oid, oldserial, transaction):
if self._is_read_only:
raise ReadOnlyError()
Expand Down
7 changes: 1 addition & 6 deletions src/ZODB/MappingStorage.py
Expand Up @@ -43,7 +43,6 @@ def __init__(self, name='MappingStorage'):
self._commit_lock = ZODB.utils.Lock()
self._opened = True
self._transaction = None
self._resolved = []
self._oid = 0

######################################################################
Expand Down Expand Up @@ -233,7 +232,7 @@ def sortKey(self):

# ZODB.interfaces.IStorage
@ZODB.utils.locked(opened)
def store(self, oid, serial, data, version, transaction, resolved=False):
def store(self, oid, serial, data, version, transaction):
assert not version, "Versions are not supported"
if transaction is not self._transaction:
raise ZODB.POSException.StorageTransactionError(self, transaction)
Expand All @@ -247,8 +246,6 @@ def store(self, oid, serial, data, version, transaction, resolved=False):
oid=oid, serials=(old_tid, serial), data=data)

self._tdata[oid] = data
if resolved:
self._resolved.append(oid)

checkCurrentSerialInTransaction = (
ZODB.BaseStorage.checkCurrentSerialInTransaction)
Expand Down Expand Up @@ -284,7 +281,6 @@ def tpc_begin(self, transaction, tid=None):
old_tid = None
tid = ZODB.utils.newTid(old_tid)
self._tid = tid
del self._resolved[:]

# ZODB.interfaces.IStorage
@ZODB.utils.locked(opened)
Expand Down Expand Up @@ -321,7 +317,6 @@ def tpc_vote(self, transaction):
if transaction is not self._transaction:
raise ZODB.POSException.StorageTransactionError(
"tpc_vote called with wrong transaction")
return self._resolved

class TransactionRecord:

Expand Down
2 changes: 0 additions & 2 deletions src/ZODB/tests/blob_transaction.txt
Expand Up @@ -390,8 +390,6 @@ stored are discarded.
... '', t)
>>> bool(blob_storage.tpc_vote(t))
False
>>> oldserial < blob_storage._tid
True
>>> blob_storage.tpc_abort(t)

Now, the serial for the existing blob should be the same:
Expand Down

0 comments on commit 4d0512f

Please sign in to comment.