diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/UsernamesManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/UsernamesManager.java index 044accf0b..e75e9ec8f 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/UsernamesManager.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/UsernamesManager.java @@ -119,7 +119,8 @@ public class UsernamesManager { final String uuidMapKey = getUuidMapKey(uuid); final String usernameMapKey = getUsernameMapKey(username); - Optional.ofNullable(jedis.get(uuidMapKey)).ifPresent(oldUsername -> jedis.del(getUsernameMapKey(oldUsername))); + final Optional maybeOldUsername = Optional.ofNullable(jedis.get(uuidMapKey)); + maybeOldUsername.ifPresent(oldUsername -> jedis.del(getUsernameMapKey(oldUsername))); jedis.set(uuidMapKey, username); jedis.set(usernameMapKey, uuid.toString()); @@ -127,14 +128,9 @@ public class UsernamesManager { cacheCluster.useWriteCluster(connection -> { final RedisAdvancedClusterAsyncCommands asyncCommands = connection.async(); - asyncCommands.get(uuidMapKey).thenAccept(oldUsername -> { - if (oldUsername != null) { - asyncCommands.del(getUsernameMapKey(oldUsername)); - } - - asyncCommands.set(uuidMapKey, username); - asyncCommands.set(usernameMapKey, uuid.toString()); - }); + maybeOldUsername.ifPresent(asyncCommands::del); + asyncCommands.set(uuidMapKey, username); + asyncCommands.set(usernameMapKey, uuid.toString()); }); } catch (JedisException e) { if (required) throw e;