1 /* 2 * @author: Brett Buckingham 3 * @author: Last modified by: $Author: emcho $ 4 * @version: $Date: 2009/07/17 18:58:14 $ $Revision: 1.3 $ 5 * 6 * This source code has been contributed to the public domain. 7 */ 8 9 package gov.nist.javax.sip.stack; 10 11 import java.util.TimerTask; 12 13 /** 14 * A subclass of TimerTask which runs TimerTask code within a try/catch block to 15 * avoid killing the SIPTransactionStack timer thread. Note: subclasses MUST not 16 * override run(); instead they should override runTask(). 17 * 18 * @author Brett Buckingham 19 * 20 */ 21 public abstract class SIPStackTimerTask extends TimerTask { 22 // / Implements code to be run when the SIPStackTimerTask is executed. runTask()23 protected abstract void runTask(); 24 25 // / The run() method is final to ensure that all subclasses inherit the 26 // exception handling. run()27 public final void run() { 28 try { 29 runTask(); 30 } catch (Throwable e) { 31 System.out.println("SIP stack timer task failed due to exception:"); 32 e.printStackTrace(); 33 } 34 } 35 } 36