diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/Account.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Account.java index f94aab91b..2a0379184 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/Account.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Account.java @@ -133,7 +133,9 @@ public class Account implements Principal { } public boolean isUuidAddressingSupported() { - return devices.stream().filter(Device::isEnabled).allMatch(device -> device.getCapabilities().isUuid()); + return devices.stream() + .filter(Device::isEnabled) + .allMatch(device -> device.getCapabilities() != null && device.getCapabilities().isUuid()); } public boolean isEnabled() { diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/Device.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Device.java index e1d672d32..1941e1cc0 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/Device.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Device.java @@ -23,6 +23,8 @@ import org.whispersystems.textsecuregcm.entities.UserCapabilities; import org.whispersystems.textsecuregcm.entities.SignedPreKey; import org.whispersystems.textsecuregcm.util.Util; +import javax.annotation.Nullable; +import javax.validation.constraints.Null; import java.util.concurrent.TimeUnit; public class Device { @@ -188,7 +190,7 @@ public class Device { return new AuthenticationCredentials(authToken, salt); } - public DeviceCapabilities getCapabilities() { + public @Nullable DeviceCapabilities getCapabilities() { return capabilities; }