package org.mobicents.timers;
import java.io.Serializable;
import org.apache.log4j.Logger;
/**
* Runnable to cancel a timer task after the tx commits.
* @author martins
*
*/
public class CancelTimerAfterTxCommitRunnable implements Runnable {
private static final Logger logger = Logger.getLogger(CancelTimerAfterTxCommitRunnable.class);
private final FaultTolerantScheduler executor;
private TimerTask task;
CancelTimerAfterTxCommitRunnable(TimerTask task,FaultTolerantScheduler executor) {
this.task = task;
this.executor = executor;
}
/*
* (non-Javadoc)
* @see java.lang.Runnable#run()
*/
public void run() {
final TimerTaskData taskData = task.getData();
final Serializable taskID = taskData.getTaskID();
if (logger.isDebugEnabled()) {
logger.debug("Cancelling timer task for timer ID "+taskID);
}
executor.getLocalRunningTasksMap().remove(taskID);
try {
task.getScheduledFuture().cancel(false);
}
catch (Throwable e) {
logger.error(e.getMessage(),e);
}
}
}