private void startPoller() {
    writeLock.lock();

    try {

      if (poller == null) {
        pollerLatch.countUp();
        poller = new PollerRunnable();
        try {
          pollerExecutor.execute(poller);
        } catch (Exception ex) {
          HornetQJournalLogger.LOGGER.errorStartingPoller(ex);
        }
      }
    } finally {
      writeLock.unlock();
    }
  }