diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxPairingState.java b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxPairingState.java index f2f1cc948..8581da441 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxPairingState.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/mailbox/MailboxPairingState.java @@ -51,8 +51,8 @@ public abstract class MailboxPairingState { } } - public static class AssertionError extends MailboxPairingState { - public AssertionError(String qrCodePayload) { + public static class UnexpectedError extends MailboxPairingState { + public UnexpectedError(String qrCodePayload) { super(qrCodePayload); } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImpl.java index ac288b432..ffc2212a0 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImpl.java @@ -98,30 +98,28 @@ class MailboxPairingTaskImpl implements MailboxPairingTask { } catch (IOException e) { onMailboxError(e, new MailboxPairingState.ConnectionError(payload)); } catch (ApiException | DbException e) { - onMailboxError(e, new MailboxPairingState.AssertionError(payload)); + onMailboxError(e, new MailboxPairingState.UnexpectedError(payload)); } } private void pairMailbox() throws IOException, ApiException, DbException { MailboxProperties mailboxProperties = decodeQrCodePayload(payload); - synchronized (lock) { - this.state = new MailboxPairingState.Pairing(payload); - notifyObservers(); - } + setState(new MailboxPairingState.Pairing(payload)); MailboxAuthToken ownerToken = api.setup(mailboxProperties); MailboxProperties ownerProperties = new MailboxProperties( mailboxProperties.getBaseUrl(), ownerToken, true); db.transaction(false, txn -> mailboxSettingsManager .setOwnMailboxProperties(txn, ownerProperties)); - synchronized (lock) { - this.state = new MailboxPairingState.Paired(); - notifyObservers(); - } + setState(new MailboxPairingState.Paired()); // TODO already do mailboxSettingsManager.setOwnMailboxStatus() ? } private void onMailboxError(Exception e, MailboxPairingState state) { logException(LOG, WARNING, e); + setState(state); + } + + private void setState(MailboxPairingState state) { synchronized (lock) { this.state = state; notifyObservers(); diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/file/RemovableDriveTaskRegistry.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/file/RemovableDriveTaskRegistry.java index 1f073bbf2..ca29b473e 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/file/RemovableDriveTaskRegistry.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/file/RemovableDriveTaskRegistry.java @@ -3,6 +3,7 @@ package org.briarproject.bramble.plugin.file; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.plugin.file.RemovableDriveTask; +@Deprecated // We can simply remove tasks when they finish @NotNullByDefault interface RemovableDriveTaskRegistry { diff --git a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImplTest.java index 47c937eea..8ee069e78 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImplTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/mailbox/MailboxPairingTaskImplTest.java @@ -42,7 +42,7 @@ public class MailboxPairingTaskImplTest extends BrambleMockTestCase { new MailboxPairingTaskFactoryImpl(executor, db, crypto, api, mailboxSettingsManager); - private final String onion = getRandomString(64); + private final String onion = getRandomString(56); private final byte[] onionBytes = getRandomBytes(32); private final String onionAddress = "http://" + onion + ".onion"; private final MailboxAuthToken setupToken = @@ -73,8 +73,8 @@ public class MailboxPairingTaskImplTest extends BrambleMockTestCase { assertTrue(state instanceof MailboxPairingState.InvalidQrCode) ); - MailboxPairingTask task2 = - factory.createPairingTask(getRandomString(65)); + String goodLength = "00" + getRandomString(63); + MailboxPairingTask task2 = factory.createPairingTask(goodLength); task2.run(); task2.addObserver(state -> assertTrue(state instanceof MailboxPairingState.InvalidQrCode) @@ -123,7 +123,7 @@ public class MailboxPairingTaskImplTest extends BrambleMockTestCase { @Test public void testMailboxApiException() throws Exception { testApiException(new MailboxApi.ApiException(), - MailboxPairingState.AssertionError.class); + MailboxPairingState.UnexpectedError.class); } @Test @@ -165,7 +165,7 @@ public class MailboxPairingTaskImplTest extends BrambleMockTestCase { MailboxPairingTask task = factory.createPairingTask(validPayload); task.run(); task.addObserver(state -> assertEquals(state.getClass(), - MailboxPairingState.AssertionError.class)); + MailboxPairingState.UnexpectedError.class)); } private String getValidPayload() {