if (isWarnEnabled()) warn (getName () + " re-examining unprocessed tasks.");
if (isInfoEnabled()) info (getName () + " re-examining unprocessed tasks.");
    public synchronized void expire() {      if (!expired) {	synchronized (alarmMutex) { // getSubtasks will check to see if one exists, so must synchronize	  currentAlarm = null;	}	expired = true;	String name = getName()+"_restartThread";	if (isWarnEnabled())	  warn (getName () + " re-examining unprocessed tasks.");	schedulable = 	  threadService.getThread (this, 				   new Runnable () {				       public void run() {					 // review the known task list					 try {					   blackboard.openTransaction ();					   reviewLevel2 ();					   processTasks (new ArrayList(myInputTaskCallback.getSubscription().getCollection()));					 } catch (Throwable t) {					   System.err.println("Error: Uncaught exception in "+this+": "+t);					   t.printStackTrace();					 } finally {					   blackboard.closeTransaction();					 }				       }				     }, 				   name);	schedulable.start();      }    }