// then sync the top level servers by calling back to the server for the sync info for each. We
// do this one at a time to avoid forcing the whole inventory into active memory at one time during the sync.
Collection<Integer> topLevelServerIds = platformSyncInfo.getTopLevelServerIds();
if (null != topLevelServerIds) {
DiscoveryServerService service = configuration.getServerServices().getDiscoveryServerService();
for (Integer topLevelServerId : topLevelServerIds) {
syncInfos = service.getResourceSyncInfo(topLevelServerId);
if (null != syncInfos) {
addAllUuids(syncInfos, allServerSideUuids);
log.info("Sync Starting: Top Level Server [" + topLevelServerId + "]");
boolean serverHadSyncedResources = syncResources(topLevelServerId, syncInfos);
log.info("Sync Complete: Top Level Server [" + topLevelServerId + "] Local inventory changed: ["