@Override
  public void launch() {
    checkState();
    if (myWorkQueue.isEmpty() && myEvents.isEmpty()) {
      if (myFinishRunnable == null) return;
      LOG.warn(new Exception("no files to refresh"));
    }
    myLaunched = true;
    mySemaphore.down();
    ((RefreshQueueImpl)RefreshQueue.getInstance()).execute(this);
  }
@Override
  public void launch()