diff --git a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeViewModel.java index 259e43f68..a7ada2cbe 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeViewModel.java @@ -66,15 +66,26 @@ class ContactExchangeViewModel extends AndroidViewModel { remoteAuthor = contact.getAuthor(); succeeded.postValue(true); } catch (ContactExistsException e) { + tryToClose(conn); duplicateAuthor = e.getRemoteAuthor(); succeeded.postValue(false); } catch (DbException | IOException e) { + tryToClose(conn); logException(LOG, WARNING, e); succeeded.postValue(false); } }); } + private void tryToClose(DuplexTransportConnection conn) { + try { + conn.getReader().dispose(true, true); + conn.getWriter().dispose(true); + } catch (IOException e) { + logException(LOG, WARNING, e); + } + } + @UiThread @Nullable Author getRemoteAuthor() {