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