Timers appear to be persistent in glassfish so now canceling any old
[utils] / mythtv / timer / src / main / java / org / wamblee / timer / TimerBean.java
index ca9103017dc7dfa7a3c94ad63974123da2df3b02..fffd74b892b206f734f9bbfc019d9926e77501e3 100644 (file)
@@ -16,6 +16,8 @@
 
 package org.wamblee.timer;
 
+import java.util.Collection;
+
 import javax.annotation.Resource;
 import javax.ejb.MessageDriven;
 import javax.ejb.Timeout;
@@ -39,7 +41,7 @@ import org.wamblee.io.DirectoryMonitor;
 /**
  * 
  */
-@MessageDriven(name = "MythtvTimer")
+@MessageDriven(name = "TimerBean")
 // Spring's JTA transaction manager does not work with container managed transactions
 // because it uses the UserTransaction object which glassfish forbids.
 @TransactionManagement(TransactionManagementType.BEAN)
@@ -59,7 +61,11 @@ public class TimerBean implements MessageListener {
         try {
             int interval = (Integer)msg.getObject();
             LOG.info("Initializing timer with interval " + interval + " seconds");
-            _timerService.createTimer(interval*1000, interval*1000, null);
+            for (Timer timer: (Collection<Timer>)_timerService.getTimers()) { 
+               LOG.info("Canceling old timers: " + timer);
+               timer.cancel();
+            }
+            _timerService.createTimer(1000, interval*1000, null);
         } catch (JMSException e) {
             throw new RuntimeException(e.getMessage());
         }
@@ -67,7 +73,7 @@ public class TimerBean implements MessageListener {
   
     @Timeout
     private void timeout(Timer aTimer) {
-        LOG.debug("Timer expired!!!");
+        LOG.info("Timer expired!!!");
         try {
             DirectoryMonitor monitor = BeanKernel.getBeanFactory().find(
                     DirectoryMonitor.class);