// thread safe method that pulls links from DB for local spidering
  public synchronized Link getLink() throws SpiderDataException {
    ArrayList<Link> rc;
    if (links.size() == 0)
      links = DBLink.getInstance().getLinksAndDelete(conf.getLinkRetrieveCount());

    if (links.isEmpty()) return null;
    else return links.remove(0);
  }
  // thread safe method that returns if there are more links
  public synchronized boolean isEmpty() {
    if (links.size() == 0) {
      try {
        links = DBLink.getInstance().getLinksAndDelete(conf.getLinkRetrieveCount());
      } catch (SpiderDataException e) {
        Logger.log(1, e.getClazz(), e.getMeth(), e.getMessage());
      }
      // if still empty then there are no more links
      if (links.size() == 0) return true;
    }

    return false;
  }