Commit 904300f1 authored by Adam Groszer's avatar Adam Groszer

forgot to add class name as requested by Jim

parent 0a7ee5ce
...@@ -239,6 +239,7 @@ _unresolvable = {} ...@@ -239,6 +239,7 @@ _unresolvable = {}
def tryToResolveConflict(self, oid, committedSerial, oldSerial, newpickle, def tryToResolveConflict(self, oid, committedSerial, oldSerial, newpickle,
committedData=b''): committedData=b''):
# class_tuple, old, committed, newstate = ('',''), 0, 0, 0 # class_tuple, old, committed, newstate = ('',''), 0, 0, 0
klass = 'n/a'
try: try:
prfactory = PersistentReferenceFactory() prfactory = PersistentReferenceFactory()
newpickle = self._crs_untransform_record_data(newpickle) newpickle = self._crs_untransform_record_data(newpickle)
...@@ -295,15 +296,17 @@ def tryToResolveConflict(self, oid, committedSerial, oldSerial, newpickle, ...@@ -295,15 +296,17 @@ def tryToResolveConflict(self, oid, committedSerial, oldSerial, newpickle,
pickler.dump(resolved) pickler.dump(resolved)
return self._crs_transform_record_data(file.getvalue()) return self._crs_transform_record_data(file.getvalue())
except (ConflictError, BadClassName) as e: except (ConflictError, BadClassName) as e:
logger.debug("Conflict resolution failed with %s: %s" % ( logger.debug(
e.__class__.__name__, str(e))) "Conflict resolution on %s failed with %s: %s",
klass, e.__class__.__name__, str(e))
except: except:
# If anything else went wrong, catch it here and avoid passing an # If anything else went wrong, catch it here and avoid passing an
# arbitrary exception back to the client. The error here will mask # arbitrary exception back to the client. The error here will mask
# the original ConflictError. A client can recover from a # the original ConflictError. A client can recover from a
# ConflictError, but not necessarily from other errors. But log # ConflictError, but not necessarily from other errors. But log
# the error so that any problems can be fixed. # the error so that any problems can be fixed.
logger.exception("Unexpected error") logger.exception(
"Unexpected error while trying to resolve conflict on %s", klass)
raise ConflictError(oid=oid, serials=(committedSerial, oldSerial), raise ConflictError(oid=oid, serials=(committedSerial, oldSerial),
data=newpickle) data=newpickle)
......
...@@ -355,11 +355,11 @@ Let's see what went into the log: ...@@ -355,11 +355,11 @@ Let's see what went into the log:
>>> msg = handler.records[0] >>> msg = handler.records[0]
>>> six.print_(msg.name, msg.levelname, msg.getMessage()) >>> six.print_(msg.name, msg.levelname, msg.getMessage())
ZODB.ConflictResolution ERROR Unexpected error ZODB.ConflictResolution ERROR Unexpected error while trying to resolve conflict on <class 'ZODB.tests.testconflictresolution.FailHard'>
>>> msg = handler.records[1] >>> msg = handler.records[1]
>>> six.print_(msg.name, msg.levelname, msg.getMessage()) >>> six.print_(msg.name, msg.levelname, msg.getMessage())
ZODB.ConflictResolution DEBUG Conflict resolution failed with ConflictError: database conflict error ZODB.ConflictResolution DEBUG Conflict resolution on <class 'ZODB.tests.testconflictresolution.Unresolvable'> failed with ConflictError: database conflict error
Cleanup: Cleanup:
...@@ -381,4 +381,3 @@ def test_suite(): ...@@ -381,4 +381,3 @@ def test_suite():
setUp=setUp, tearDown=tearDown, setUp=setUp, tearDown=tearDown,
checker=ZODB.tests.util.checker), checker=ZODB.tests.util.checker),
]) ])
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