code: private void downloadDomains() throws IOException {
  		domainsFileLock.writeLock().lock();
  		logger.trace("LOCK writelock");
  		try {
  			URL domainsURL = new URL( url + DOMAINS_PATH + getDomainFilename());
  			File localFile = getDomainFile();
  
  			logger.info("Downloading {} to: {}",domainsURL, localFile);
  			FileDownloadUtils.downloadFile(domainsURL, localFile);
  		} catch (MalformedURLException e) {
  			logger.error("Malformed url: "+ url + DOMAINS_PATH + getDomainFilename(),e);
  		} finally {
  			logger.trace("UNLOCK writelock");
  			domainsFileLock.writeLock().unlock();
  		}
  	}
docs: Downloads the domains file, overwriting any existing file
  @throws IOException