Index: Transience.py =================================================================== RCS file: /cvs-repository/Zope/lib/python/Products/Transience/Transience.py,v retrieving revision 1.28.6.4 diff -r1.28.6.4 Transience.py 807c807,814 < v = self._data[b].get(k, notfound) --- > try: > v = self._data[b].get(k, notfound) > except KeyError: > LOG('Transience', WARNING, > 'KeyError raised in get, checking BTrees') > check_btree(self._data, 'data') > check_btree(index, 'index') > raise 954a962,981 > > def check_btree(btree, name): > from BTrees.check import check, display > from cStringIO import StringIO > try: > check(btree) > LOG('Transience', WARNING,'BTree check for %s succeeded' % name) > except: > # BTree check failed > oldstdout = sys.stdout > tmp = StringIO() > try: > sys.stdout = tmp > display(btree) > tmp.seek(0) > LOG('Transience', WARNING, 'BTree check for %s failed' % name, > tmp.read(), error=sys.exc_info()) > tmp.close() > finally: > sys.stdout = oldstdout