From e3459fb0a388ee6999f84040bfa49395c14d6c90 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Mon, 29 Feb 2016 13:19:32 -0300 Subject: [PATCH] Use given transaction when adding remote properties in TransportPropertyManager. --- .../api/properties/TransportPropertyManager.java | 3 ++- .../properties/TransportPropertyManagerImpl.java | 16 +++++----------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/briar-api/src/org/briarproject/api/properties/TransportPropertyManager.java b/briar-api/src/org/briarproject/api/properties/TransportPropertyManager.java index 9dc6555439..445329ba95 100644 --- a/briar-api/src/org/briarproject/api/properties/TransportPropertyManager.java +++ b/briar-api/src/org/briarproject/api/properties/TransportPropertyManager.java @@ -4,6 +4,7 @@ import org.briarproject.api.DeviceId; import org.briarproject.api.TransportId; import org.briarproject.api.contact.ContactId; import org.briarproject.api.db.DbException; +import org.briarproject.api.db.Transaction; import java.util.Map; @@ -13,7 +14,7 @@ public interface TransportPropertyManager { * Stores the given properties received while adding a contact - they will * be superseded by any properties synced from the contact. */ - void addRemoteProperties(ContactId c, DeviceId dev, + void addRemoteProperties(Transaction txn, ContactId c, DeviceId dev, Map<TransportId, TransportProperties> props) throws DbException; /** Returns the local transport properties for all transports. */ diff --git a/briar-core/src/org/briarproject/properties/TransportPropertyManagerImpl.java b/briar-core/src/org/briarproject/properties/TransportPropertyManagerImpl.java index 9910ff42fe..4b10c48ede 100644 --- a/briar-core/src/org/briarproject/properties/TransportPropertyManagerImpl.java +++ b/briar-core/src/org/briarproject/properties/TransportPropertyManagerImpl.java @@ -82,18 +82,12 @@ class TransportPropertyManagerImpl implements TransportPropertyManager, } @Override - public void addRemoteProperties(ContactId c, DeviceId dev, + public void addRemoteProperties(Transaction txn, ContactId c, DeviceId dev, Map<TransportId, TransportProperties> props) throws DbException { - Transaction txn = db.startTransaction(false); - try { - Group g = getContactGroup(db.getContact(txn, c)); - for (Entry<TransportId, TransportProperties> e : props.entrySet()) { - storeMessage(txn, g.getId(), dev, e.getKey(), e.getValue(), 0, - false, false); - } - txn.setComplete(); - } finally { - db.endTransaction(txn); + Group g = getContactGroup(db.getContact(txn, c)); + for (Entry<TransportId, TransportProperties> e : props.entrySet()) { + storeMessage(txn, g.getId(), dev, e.getKey(), e.getValue(), 0, + false, false); } } -- GitLab