Always sort lists of API versions for easier comparison.

This commit is contained in:
akwizgran
2022-08-02 17:54:02 +01:00
parent 1699d6b5f8
commit 42e2926d61
4 changed files with 16 additions and 3 deletions

View File

@@ -85,7 +85,8 @@ public class MailboxProperties {
onion.equals(m.onion) && onion.equals(m.onion) &&
authToken.equals(m.authToken) && authToken.equals(m.authToken) &&
NullSafety.equals(inboxId, m.inboxId) && NullSafety.equals(inboxId, m.inboxId) &&
NullSafety.equals(outboxId, m.outboxId); NullSafety.equals(outboxId, m.outboxId) &&
serverSupports.equals(m.serverSupports);
} }
return false; return false;
} }

View File

@@ -67,6 +67,13 @@ public class MailboxStatus {
return attemptsSinceSuccess; return attemptsSinceSuccess;
} }
/**
* Returns the mailbox's supported API versions.
*/
public List<MailboxVersion> getServerSupports() {
return serverSupports;
}
/** /**
* @return true if this status indicates a problem with the mailbox. * @return true if this status indicates a problem with the mailbox.
*/ */

View File

@@ -52,6 +52,7 @@ import java.util.Map.Entry;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
import javax.inject.Inject; import javax.inject.Inject;
import static java.util.Collections.sort;
import static org.briarproject.bramble.api.client.ContactGroupConstants.GROUP_KEY_CONTACT_ID; import static org.briarproject.bramble.api.client.ContactGroupConstants.GROUP_KEY_CONTACT_ID;
import static org.briarproject.bramble.api.identity.Author.FORMAT_VERSION; import static org.briarproject.bramble.api.identity.Author.FORMAT_VERSION;
import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH; import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH;
@@ -474,6 +475,8 @@ class ClientHelperImpl implements ClientHelper {
list.add(new MailboxVersion(element.getLong(0).intValue(), list.add(new MailboxVersion(element.getLong(0).intValue(),
element.getLong(1).intValue())); element.getLong(1).intValue()));
} }
// Sort the list of versions for easier comparison
sort(list);
return list; return list;
} }

View File

@@ -22,7 +22,6 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Collections;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
@@ -35,6 +34,7 @@ import okhttp3.Response;
import okhttp3.ResponseBody; import okhttp3.ResponseBody;
import static com.fasterxml.jackson.databind.MapperFeature.BLOCK_UNSAFE_POLYMORPHIC_BASE_TYPES; import static com.fasterxml.jackson.databind.MapperFeature.BLOCK_UNSAFE_POLYMORPHIC_BASE_TYPES;
import static java.util.Collections.sort;
import static java.util.Objects.requireNonNull; import static java.util.Objects.requireNonNull;
import static okhttp3.internal.Util.EMPTY_REQUEST; import static okhttp3.internal.Util.EMPTY_REQUEST;
import static org.briarproject.bramble.util.IoUtils.copyAndClose; import static org.briarproject.bramble.util.IoUtils.copyAndClose;
@@ -125,6 +125,8 @@ class MailboxApiImpl implements MailboxApi {
if (major < 0 || minor < 0) throw new ApiException(); if (major < 0 || minor < 0) throw new ApiException();
serverSupports.add(new MailboxVersion(major, minor)); serverSupports.add(new MailboxVersion(major, minor));
} }
// Sort the list of versions for easier comparison
sort(serverSupports);
return serverSupports; return serverSupports;
} }
@@ -245,7 +247,7 @@ class MailboxApiImpl implements MailboxApi {
if (time < 1) throw new ApiException(); if (time < 1) throw new ApiException();
list.add(new MailboxFile(MailboxFileId.fromString(name), time)); list.add(new MailboxFile(MailboxFileId.fromString(name), time));
} }
Collections.sort(list); sort(list);
return list; return list;
} catch (JacksonException | InvalidMailboxIdException e) { } catch (JacksonException | InvalidMailboxIdException e) {
throw new ApiException(); throw new ApiException();