Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.jboss.remoting.util;
 
 import java.util.Timer;
 
 import  org.apache.log4j.Logger;


Author(s):
Tom Elrod
public class TimerUtil
   private static Timer timer = null;
   private static ArrayList stoppableTasks = new ArrayList();
   private static Logger log = Logger.getLogger(TimerUtil.class);
   
   private static synchronized void init()
   {
      . = new Timer(true);
   }
   public static synchronized void schedule(TimerTask tasklong period)
   {
      if (. == null)
      {
         TimerUtil.init();
      }
      
      if (task instanceof StoppableTimerTask)
      {
         .add(task);
      }
      //schedule at fixed delay (not rate)
      try
      {
         ..schedule(taskperiodperiod);
      }
      catch (IllegalStateException e)
      {
         .debug("Unable to schedule TimerTask on existing Timer"e);
          = new Timer(true);
         .schedule(taskperiodperiod);
      }
   }
   public static synchronized void unschedule(TimerTask task)
   {
      if (!(task instanceof StoppableTimerTask))
      {
         .warn("TimerUtil only remembers StoppableTimerTasks");
         return;
      }
      
      StoppableTimerTask stoppableTask = (StoppableTimerTasktask;
      if (!.remove(stoppableTask))
         .warn("unrecognized StoppableTimerTask: " + task);
      
      try
      {
         stoppableTask.stop();
      }
      catch (Exception e)
      {
         .warn("error calling stop() on: " + stoppableTaske);
      }
   }
   public static synchronized void destroy()
   {
      if (. != null)
      {
         ..cancel();
         . = null;
      }
      
      Iterator it = new ArrayList().iterator();
      while (it.hasNext())
      {
         StoppableTimerTask task = (StoppableTimerTaskit.next();
         try
         {
            task.stop();
         }
         catch (Exception e)
         {
            .warn("unable to stop TimerTask: " + task);
         }
      }
   }
New to GrepCode? Check out our FAQ X