Hi all,
i wrote a little test which refers to the following process-definition:
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="standardprocess">
| <start-state name="start">
| <transition name="start" to="task"></transition>
| </start-state>
| <end-state name="end"></end-state>
| <task-node name="task" create-tasks="true">
| <task name="dummytask" blocking="true"></task>
| <transition name="stop" to="end"></transition>
| </task-node>
| </process-definition>
In my test-class i create a new process-instance, call a signal on the
root-token and save the process-instance. So the root-token of the persistent
process-instance remains in the task-node and a blocking task-instance has been
created automatically. After reloading the process-instance and calling a
signal again, the root-token leaves the task-node, although the blocking
task-instance has not been ended. In my opinion the root-token is not allowed
to leave the task node. So i started the debugger and stepped into the
leave()-method of TaskNode and find out that the check
tmi.hasBlockingTaskInstances(executionContext.getToken()) fails, because the
token-instance in execution-context an the token-instance in the (persistent)
task-instance differ. What i mean is
taskInstance.getToken()!=executionContext.getToken(), because the token in the
task-instance is a hibernate proxy and the token in the execution-context is a
"real" token). My test-class is as follows:
import junit.framework.TestCase;
| import org.jbpm.JbpmConfiguration;
| import org.jbpm.JbpmContext;
| import org.jbpm.graph.def.ProcessDefinition;
| import org.jbpm.graph.exe.ProcessInstance;
|
| public class StandardprocessTest extends TestCase {
|
| JbpmConfiguration jbpmConfiguration = null;
|
| ProcessDefinition processDefinition = null;
|
| ProcessInstance processInstance = null;
|
| protected void setUp() throws Exception {
| jbpmConfiguration = JbpmConfiguration.getInstance();
|
| jbpmConfiguration.createSchema();
|
| processDefinition = ProcessDefinition
|
.parseXmlResource("standardprocess.par/processdefinition.xml");
| }
|
| protected void tearDown() throws Exception {
| }
|
| public void testStandardprocess() {
|
| long processInstanceId;
|
| JbpmContext jbpmContext1 =
jbpmConfiguration.createJbpmContext();
|
| try {
|
| jbpmContext1.deployProcessDefinition(processDefinition);
|
| processInstance = jbpmContext1
|
.newProcessInstanceForUpdate("standardprocess");
| assertNotNull(processInstance);
| processInstanceId = processInstance.getId();
|
| processInstance.signal();
|
| } finally {
| // Implicit save
| jbpmContext1.close();
| }
|
| JbpmContext jbpmContext2 =
jbpmConfiguration.createJbpmContext();
|
| try {
|
| jbpmContext2.deployProcessDefinition(processDefinition);
|
| processInstance = jbpmContext2
|
.loadProcessInstanceForUpdate(processInstanceId);
| assertNotNull(processInstance);
|
| assertEquals("task",
processInstance.getRootToken().getNode()
| .getName());
|
| // Should not be allowed
| processInstance.signal();
|
| } finally {
| // Implicit save
| jbpmContext2.close();
| }
| }
| }
Any suggestions?
Thanks,
Torsten
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3939996#3939996
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3939996
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user