diff --git a/src/main/java/org/whispersystems/textsecuregcm/workers/DirectoryCommand.java b/src/main/java/org/whispersystems/textsecuregcm/workers/DirectoryCommand.java index e81be5b22..d06d76318 100644 --- a/src/main/java/org/whispersystems/textsecuregcm/workers/DirectoryCommand.java +++ b/src/main/java/org/whispersystems/textsecuregcm/workers/DirectoryCommand.java @@ -26,6 +26,8 @@ import com.yammer.dropwizard.jdbi.args.OptionalArgumentFactory; import net.sourceforge.argparse4j.inf.Namespace; import net.spy.memcached.MemcachedClient; import org.skife.jdbi.v2.DBI; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.whispersystems.textsecuregcm.WhisperServerConfiguration; import org.whispersystems.textsecuregcm.federation.FederatedClientManager; import org.whispersystems.textsecuregcm.providers.MemcachedClientFactory; @@ -38,6 +40,8 @@ import redis.clients.jedis.JedisPool; public class DirectoryCommand extends ConfiguredCommand { + private final Logger logger = LoggerFactory.getLogger(DirectoryCommand.class); + public DirectoryCommand() { super("directory", "Update directory from DB and peers."); } @@ -68,6 +72,9 @@ public class DirectoryCommand extends ConfiguredCommand clientContacts = client.getUserTokens(retrieved); - if (clientContacts == null) + if (clientContacts == null) { + logger.info("Remote tokens empty, ending..."); break; + } else { + logger.info("Retrieved " + clientContacts.size() + " remote tokens..."); + } for (ClientContact clientContact : clientContacts) { clientContact.setRelay(client.getPeerName()); Optional existing = directory.get(clientContact.getToken()); - if (!clientContact.isInactive() && (!existing.isPresent() || existing.get().getRelay().equals(client.getPeerName()))) { - directory.add(handle, clientContact); + if (!clientContact.isInactive() && (!existing.isPresent() || client.getPeerName().equals(existing.get().getRelay()))) { +// directory.add(handle, clientContact); + directory.add(clientContact); } else { - if (existing != null && client.getPeerName().equals(existing.get().getRelay())) { + if (existing.isPresent() && client.getPeerName().equals(existing.get().getRelay())) { directory.remove(clientContact.getToken()); } } } retrieved += clientContacts.size(); + logger.info("Processed: " + retrieved + " remote tokens."); } logger.info("Update from peer complete."); } finally { - directory.stopBatchOperation(handle); +// directory.stopBatchOperation(handle); } }