diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/contact/ContactManager.java b/bramble-api/src/main/java/org/briarproject/bramble/api/contact/ContactManager.java index 318e2e11c..23fd34ac5 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/contact/ContactManager.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/contact/ContactManager.java @@ -178,6 +178,12 @@ public interface ContactManager { */ void removePendingContact(PendingContactId p) throws DbException; + /** + * Removes a {@link PendingContact}. + */ + void removePendingContact(Transaction txn, PendingContactId p) + throws DbException; + /** * Returns the contact with the given ID. */ diff --git a/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactManagerImpl.java index eb0fa519b..3319258e6 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactManagerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactManagerImpl.java @@ -131,7 +131,8 @@ class ContactManagerImpl implements ContactManager, EventListener { } @Override - public PendingContact addPendingContact(Transaction txn, String link, String alias) + public PendingContact addPendingContact(Transaction txn, String link, + String alias) throws DbException, FormatException, GeneralSecurityException { PendingContact p = pendingContactFactory.createPendingContact(link, alias); @@ -169,7 +170,8 @@ class ContactManagerImpl implements ContactManager, EventListener { } @Override - public Collection> getPendingContacts(Transaction txn) + public Collection> getPendingContacts( + Transaction txn) throws DbException { Collection pendingContacts = db.getPendingContacts(txn); List> pairs = @@ -184,7 +186,13 @@ class ContactManagerImpl implements ContactManager, EventListener { @Override public void removePendingContact(PendingContactId p) throws DbException { - db.transaction(false, txn -> db.removePendingContact(txn, p)); + db.transaction(false, txn -> removePendingContact(txn, p)); + } + + @Override + public void removePendingContact(Transaction txn, PendingContactId p) + throws DbException { + db.removePendingContact(txn, p); states.remove(p); }