예제 #1
0
  public ServletTimer createTimer(
      ApplicationSession appSession, long delay, boolean isPersistent, Serializable info) {
    if (LOG.isDebugEnabled()) {
      LOG.debug(
          "Create timer for application "
              + appSession.getApplicationName()
              + " (delay="
              + delay
              + ", persistent="
              + isPersistent
              + ")");
    }
    ApplicationSessionImpl applicationSessionImpl = (ApplicationSessionImpl) appSession;

    applicationSessionImpl.checkValid();

    if (!applicationSessionImpl.hasTimerListener()) {
      throw new IllegalStateException(
          "No Timer listeners have been configured for this application ");
    }
    TimerListener listener = applicationSessionImpl.getServletContextInternal().getTimerListener();
    ServletTimerImpl servletTimer =
        createTimerLocally(listener, delay, isPersistent, info, applicationSessionImpl);

    return servletTimer;
  }