You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/09/25 18:43:42 UTC

svn commit: r1526225 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java

Author: rmannibucau
Date: Wed Sep 25 16:43:41 2013
New Revision: 1526225

URL: http://svn.apache.org/r1526225
Log:
TOMEE-1048 supporting redeployment of timers

Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java?rev=1526225&r1=1526224&r2=1526225&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java Wed Sep 25 16:43:41 2013
@@ -500,7 +500,12 @@ public class EjbTimerServiceImpl impleme
         triggerDataMap.put(EjbTimeoutJob.TIMER_DATA, timerData);
 
         try {
-            if (!scheduler.checkExists(new TriggerKey(atrigger.getName(), atrigger.getGroup()))) {
+            final TriggerKey triggerKey = new TriggerKey(atrigger.getName(), atrigger.getGroup());
+            if (!scheduler.checkExists(triggerKey)) {
+                scheduler.scheduleJob(trigger);
+            } else if (Trigger.TriggerState.PAUSED.equals(scheduler.getTriggerState(triggerKey))) { // redeployment
+                // more consistent in the semantic than a resume but resume would maybe be more relevant here
+                scheduler.unscheduleJob(triggerKey);
                 scheduler.scheduleJob(trigger);
             }
         } catch (Exception e) {