if (task.scheduled >= 0)
if (! queue.isStopped () && task.scheduled >= 0)
    public void run()    {      TimerTask task;      while ((task = queue.serve()) != null)	{	  // If this task has not been canceled	  if (task.scheduled >= 0)	    {	      // Mark execution time	      task.lastExecutionTime = task.scheduled;	      // Repeatable task?	      if (task.period < 0)		{		  // Last time this task is executed		  task.scheduled = -1;		}	      // Run the task	      try		{		  task.run();		}	      catch (Throwable t)		{				  /* ignore all errors */		}	    }	  // Calculate next time and possibly re-enqueue	  if (task.scheduled >= 0)	    {	      if (task.fixed)		{		  task.scheduled += task.period;		}	      else		{		  task.scheduled = task.period + System.currentTimeMillis();		}	      queue.enqueue(task);	    }	}    }