diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxServiceImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxServiceImpl.java index e6b408e53c07049cba07ac9a452a61eadeef32d8..9d91f9598c7bee32ccd88534d2b11f501f411883 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxServiceImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxServiceImpl.java @@ -209,15 +209,11 @@ public class MailboxServiceImpl implements MailboxService, EventListener { } // Poll Contact mailboxes - Map<ContactId, TransportProperties> contacts; Collection<MailboxInfo> contactMailboxes; Transaction txn = null; try { txn = db.startTransaction(true); contactMailboxes = db.getContactMailboxes(txn); - contacts = - transportPropertyManager.getRemotePropertiesByType(txn, - MailboxConstants.ID, ContactType.CONTACT); db.commitTransaction(txn); } catch (DbException e) { logException(LOG, WARNING, e); @@ -240,28 +236,28 @@ public class MailboxServiceImpl implements MailboxService, EventListener { continue; } - TransportProperties properties = - contacts.get(mailboxInfo.getMailboxId()); - - if (properties == null) - throw new AssertionError(); - - ioExecutor.execute( - () -> connectContactMailbox(mailboxInfo.getContactId(), - properties)); + ioExecutor.execute(() -> connectContactMailbox(mailboxInfo)); } reschedule(); } - private void connectContactMailbox(ContactId contactId, - TransportProperties properties) { + private void connectContactMailbox(MailboxInfo mailboxInfo) { for (TransportId transportId : transportOrder) { if (!activePlugins.containsKey(transportId)) continue; DuplexPlugin plugin = activePlugins.get(transportId); + TransportProperties properties; + try { + properties = transportPropertyManager + .getRemoteProperties(mailboxInfo.getMailboxId(), transportId); + } catch (DbException e) { + logException(LOG, WARNING, e); + return; + } + DuplexTransportConnection conn = plugin.createConnection(properties); @@ -270,7 +266,7 @@ public class MailboxServiceImpl implements MailboxService, EventListener { LOG.info("Contact mailbox connected"); mailboxManager.handleOutgoingContactMailboxConnection( - contactId, conn, transportId); + mailboxInfo.getContactId(), conn, transportId); } } }