code: private synchronized void startTimer() {
      if (timer == null) {
        timer = new Timer("Timer thread for monitoring " + getContextName(), 
                          true);
        TimerTask task = new TimerTask() {
            public void run() {
              try {
                timerEvent();
              }
              catch (IOException ioe) {
                ioe.printStackTrace();
              }
            }
          };
        long millis = period * 1000;
        timer.scheduleAtFixedRate(task, millis, millis);
      }
    }
docs: Starts timer if it is not already started