[jbpm-commits] JBoss JBPM SVN: r4224 - jbpm3/branches/jbpm-3.2.6.SP/modules/enterprise/src/test/java/org/jbpm/enterprise/ejbtimer.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Mar 10 16:07:45 EDT 2009
Author: alex.guizar at jboss.com
Date: 2009-03-10 16:07:45 -0400 (Tue, 10 Mar 2009)
New Revision: 4224
Modified:
jbpm3/branches/jbpm-3.2.6.SP/modules/enterprise/src/test/java/org/jbpm/enterprise/ejbtimer/EjbSchedulerTest.java
Log:
JBPM-2093: stabilize EjbSchedulerTest under MySQL
Modified: jbpm3/branches/jbpm-3.2.6.SP/modules/enterprise/src/test/java/org/jbpm/enterprise/ejbtimer/EjbSchedulerTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2.6.SP/modules/enterprise/src/test/java/org/jbpm/enterprise/ejbtimer/EjbSchedulerTest.java 2009-03-10 19:30:40 UTC (rev 4223)
+++ jbpm3/branches/jbpm-3.2.6.SP/modules/enterprise/src/test/java/org/jbpm/enterprise/ejbtimer/EjbSchedulerTest.java 2009-03-10 20:07:45 UTC (rev 4224)
@@ -32,7 +32,6 @@
import org.jbpm.graph.def.Event;
import org.jbpm.graph.def.EventCallback;
import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.graph.exe.Token;
import org.jbpm.scheduler.ejbtimer.EntitySchedulerService;
/**
@@ -121,6 +120,9 @@
+ " </start-state>"
+ " <state name='a'>"
+ " <timer duedate='1 second' repeat='1 second' />"
+ + " <transition to='b' />"
+ + " </state>"
+ + " <state name='b'>"
+ " <transition to='end' />"
+ " </state>"
+ " <end-state name='end' />"
@@ -135,16 +137,18 @@
assertEquals("a", getProcessInstanceState(processInstanceId));
// cancel timer
long rootTokenId = processInstance.getRootToken().getId();
- cancelTimer("a", rootTokenId);
+ signalToken(rootTokenId);
// no more expirations
try {
- EventCallback.waitForEvent(Event.EVENTTYPE_TIMER, 2000);
+ EventCallback.waitForEvent(Event.EVENTTYPE_TIMER, 1000);
+ System.out.println("canceled timer fired again, probably due to race condition");
+ EventCallback.waitForEvent(Event.EVENTTYPE_TIMER, 1000);
fail("expected timeout exception");
}
catch (org.jbpm.JbpmException e) {
// timeout exception was expected
}
-
+ // proceed to end state
signalToken(rootTokenId);
assertTrue("expected process instance " + processInstanceId + " to have ended",
hasProcessInstanceEnded(processInstanceId));
@@ -162,23 +166,23 @@
+ " <transition to='a' />"
+ " </start-state>"
+ " <state name='a'>"
- + " <timer duedate='500 milliseconds' transition='timeout' />"
+ + " <timer duedate='1 second' transition='timeout' />"
+ " <transition name='timeout' to='b' />"
+ " </state>"
+ " <state name='b'>"
- + " <timer duedate='500 milliseconds' transition='timeout' />"
+ + " <timer duedate='1 second' transition='timeout' />"
+ " <transition name='timeout' to='c' />"
+ " </state>"
+ " <state name='c'>"
- + " <timer duedate='500 milliseconds' transition='timeout' />"
+ + " <timer duedate='1 second' transition='timeout' />"
+ " <transition name='timeout' to='d' />"
+ " </state>"
+ " <state name='d'>"
- + " <timer duedate='500 milliseconds' transition='timeout' />"
+ + " <timer duedate='1 second' transition='timeout' />"
+ " <transition name='timeout' to='e' />"
+ " </state>"
+ " <state name='e'>"
- + " <timer duedate='500 milliseconds' transition='timeout' />"
+ + " <timer duedate='1 second' transition='timeout' />"
+ " <transition name='timeout' to='end' />"
+ " </state>"
+ " <end-state name='end' />"
@@ -209,7 +213,7 @@
+ " <transition name='e' to='e' />"
+ " </fork>"
+ " <state name='a'>"
- + " <timer duedate='0.5 seconds' transition='timeout' />"
+ + " <timer duedate='0 seconds' transition='timeout' />"
+ " <transition name='timeout' to='j' />"
+ " </state>"
+ " <state name='b'>"
@@ -217,15 +221,15 @@
+ " <transition name='timeout' to='j' />"
+ " </state>"
+ " <state name='c'>"
- + " <timer duedate='1.5 seconds' transition='timeout' />"
+ + " <timer duedate='2 seconds' transition='timeout' />"
+ " <transition name='timeout' to='j' />"
+ " </state>"
+ " <state name='d'>"
- + " <timer duedate='2 seconds' transition='timeout' />"
+ + " <timer duedate='3 seconds' transition='timeout' />"
+ " <transition name='timeout' to='j' />"
+ " </state>"
+ " <state name='e'>"
- + " <timer duedate='2.5 second' transition='timeout' />"
+ + " <timer duedate='4 seconds' transition='timeout' />"
+ " <transition name='timeout' to='j' />"
+ " </state>"
+ " <join name='j' async='exclusive' lock='UPGRADE'>"
@@ -244,23 +248,12 @@
private static final long serialVersionUID = 1L;
public Object execute(JbpmContext jbpmContext) throws Exception {
- return jbpmContext.loadProcessInstance(processInstanceId)
+ return jbpmContext
+ .loadProcessInstance(processInstanceId)
.getRootToken()
.getNode()
.getName();
}
});
}
-
- private void cancelTimer(final String timerName, final long tokenId) throws RemoteException {
- commandService.execute(new Command() {
- private static final long serialVersionUID = 1L;
-
- public Object execute(JbpmContext jbpmContext) throws Exception {
- Token token = jbpmContext.loadToken(tokenId);
- jbpmContext.getServices().getSchedulerService().deleteTimersByName(timerName, token);
- return null;
- }
- });
- }
}
More information about the jbpm-commits
mailing list