Handle sqlite3 exceptions in __setitem__ instead of checking presence
This commit is contained in:
parent
a7a0036480
commit
195ce33c83
|
@ -477,7 +477,7 @@ class Connection(ConnectionBase):
|
|||
logging.debug('%s:%s -> %s', self.host_print, self.port, obj)
|
||||
self.vectors_requested.pop(obj.vector, None)
|
||||
self.vectors_to_get.discard(obj.vector)
|
||||
if obj.is_valid() and obj.vector not in shared.objects:
|
||||
if obj.is_valid():
|
||||
shared.objects[obj.vector] = obj
|
||||
if (
|
||||
obj.object_type == shared.i2p_dest_obj_type
|
||||
|
|
|
@ -128,11 +128,14 @@ class Inventory():
|
|||
|
||||
def __setitem__(self, vector, obj):
|
||||
with shared.objects_lock:
|
||||
cur = self._db.execute(
|
||||
'INSERT INTO objects VALUES (?,?,?,?,?,?,?,?)', (
|
||||
vector, obj.expires_time, obj.object_type, obj.version,
|
||||
obj.stream_number, obj.tag, obj.data, obj.offset
|
||||
))
|
||||
try:
|
||||
cur = self._db.execute(
|
||||
'INSERT INTO objects VALUES (?,?,?,?,?,?,?,?)', (
|
||||
vector, obj.expires_time, obj.object_type, obj.version,
|
||||
obj.stream_number, obj.tag, obj.data, obj.offset
|
||||
))
|
||||
except (sqlite3.DatabaseError, sqlite3.IntegrityError):
|
||||
return
|
||||
self._db.commit()
|
||||
self.rowid = cur.lastrowid
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user