0
0
mirror of https://github.com/signalapp/Signal-Server.git synced 2024-09-20 12:02:18 +02:00

Mirror username deletes unconditionally.

This commit is contained in:
Jon Chambers 2020-06-07 14:26:33 -04:00 committed by Jon Chambers
parent 1b5dc0e434
commit 1db5977e80

View File

@ -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<String> 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<String, String> 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;