private synchronized void loadDomains() { if (domainSet != null) return; try { domainSet = new HashSet<String>(); logger.info("getting all domains"); AmazonSimpleDB db = getSimpleDb(); ListDomainsResult listDomainsResult = db.listDomains(); domainSet.addAll(listDomainsResult.getDomainNames()); while (listDomainsResult.getNextToken() != null) { ListDomainsRequest request = new ListDomainsRequest().withNextToken(listDomainsResult.getNextToken()); listDomainsResult = db.listDomains(request); domainSet.addAll(listDomainsResult.getDomainNames()); } } catch (AmazonClientException e) { throw new PersistenceException(e); } }