From 39c74f1363af29f1c9e777f8fcfb99a796b3708e Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 27 Apr 2022 11:57:39 -0300 Subject: [PATCH] Annotate MailboxApi with @NotNullByDefault --- .../java/org/briarproject/bramble/mailbox/MailboxApi.java | 2 ++ .../briarproject/bramble/mailbox/MailboxManagerImpl.java | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxApi.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxApi.java index 63c494f03..0ecaffbea 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxApi.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxApi.java @@ -7,6 +7,7 @@ import org.briarproject.bramble.api.mailbox.MailboxAuthToken; import org.briarproject.bramble.api.mailbox.MailboxFileId; import org.briarproject.bramble.api.mailbox.MailboxFolderId; import org.briarproject.bramble.api.mailbox.MailboxProperties; +import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import java.io.File; import java.io.IOException; @@ -16,6 +17,7 @@ import java.util.List; import javax.annotation.Nonnull; import javax.annotation.concurrent.Immutable; +@NotNullByDefault interface MailboxApi { /** diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxManagerImpl.java index 1671c0519..da8d8d47d 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxManagerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxManagerImpl.java @@ -102,6 +102,7 @@ class MailboxManagerImpl implements MailboxManager { try { MailboxProperties props = db.transactionWithNullableResult(true, mailboxSettingsManager::getOwnMailboxProperties); + if (props == null) throw new DbException(); success = api.checkStatus(props); } catch (DbException e) { logException(LOG, WARNING, e); @@ -135,6 +136,11 @@ class MailboxManagerImpl implements MailboxManager { public boolean unPair() throws DbException { MailboxProperties properties = db.transactionWithNullableResult(true, mailboxSettingsManager::getOwnMailboxProperties); + if (properties == null) { + // no more mailbox, that's strange but possible if called in quick + // succession, so let's return true this time + return true; + } boolean wasWiped; try { api.wipeMailbox(properties);