0 Replies Latest reply on Dec 13, 2006 10:59 PM by Stephane DUCAS

    Timer is still running when token has left the node..

    Stephane DUCAS Newbie

      Hello!!

      I defined a timer on a state with repeat="true" and duration="1 minutes"...

      My goal is to check each minutes if the state is over..

      Inside the timer I've put a

      node.leave(..) which seems to signal the token because i can see the task instance that have defined after the state node...

      But the timer is still running each minutes!!!!

      Because I've putted a node.leave(..) inside my process go on node by node each minutes...

      Is this behavior normal???

      How can I do to cancel this timer??(I've tryed a lot of solutions without success!)


      Here is the jpdl section:

      state name="initial"
      timer name="initialTimer" duedate="1 minutes" repeat="true"
      action class="com.sdmda.adt.ActionHandler"/
      /timer

      transition name="" to="traiterFinAccident"/
      /state

      And the ActionHandler:

      public class ActionHandler implements org.jbpm.graph.def.ActionHandler {

      public void execute(ExecutionContext arg0) throws Exception {

      Integer count = (Integer) arg0.getVariable("count");

      String message = (String) arg0.getVariable("message");

      if (null == count)
      count = 0;

      System.out.println("count= " + count);
      System.out.println("message= " + message);

      if (count == 2) {

      System.out.println("signaling");


      Node state = arg0.getNode();


      state.leave(arg0);


      } else
      arg0.setVariable("count", ++count);


      System.out
      .println("-------------------------------------------------------------");


      }

      }


      THANKS!!!!!!!!!!!