Author: alex.guizar(a)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;
- }
- });
- }
}
Show replies by date