Hi,

I'm having a problem creating task instances, specifically for the 1st task 
node in the fairly simple workflow I've created. I can create the first task 
ok, and I can end it, and save the instance. 
However upon creating the context again and reloading the process instance, 
things go badly - I can't create a task instance from there.

Here is a JUnit4 test case that illustrates what I am trying to do, and the 
processdefinition.xml is below. If anyone can point out what I'm doing wrong or 
point me in the right direction, I'd be most grateful.


  | @Test
  |     public void nativeTaskInstanceCommits() {
  |             File f = TestFiles.getFile("SimpleWorkflow");
  |             JbpmContext context = 
JbpmConfiguration.getInstance().createJbpmContext();
  |             
  |             try {
  |                     jbpmContext.setActorId("user");
  |                     ProcessDefinition processDefinition = 
ProcessDefinition.parseXmlReader(new FileReader(f));
  |                     context.deployProcessDefinition(processDefinition);
  |                     
  |                     ProcessInstance processInstance = new 
ProcessInstance(processDefinition);
  |                     context.save(processInstance);
  |                     
  |                     TaskInstance taskInstance = 
processInstance.getTaskMgmtInstance().createStartTaskInstance();
  |                     Long id = processInstance.getId();
  |                     
Assert.assertTrue("startTask".equals(taskInstance.getName()));
  |                     taskInstance.end();
  |                     context.save(taskInstance);
  |                     context.close();
  |                     
  |                     context = 
JbpmConfiguration.getInstance().createJbpmContext();
  |                     
  |                     //this doesn't seem to work for me
  |                     processInstance = 
context.loadProcessInstanceForUpdate(id);
  |                     taskInstance = 
processInstance.getTaskMgmtInstance().createTaskInstance();
  |                     
Assert.assertTrue("firstTask".equals(taskInstance.getName()));
  |                     
  |                     List<?> list = 
taskInstance.getToken().getNode().getLeavingTransitions();
  |                     
  |                     for(Object o : list) {
  |                             Transition trans = (Transition)o;
  |                             String name = trans.getName();
  |                             Assert.assertTrue( (name.equals("finish")) || 
(name.equals("to taskNode2")) );
  |                     }
  |                     
  |                     taskInstance.end("finish");
  |                     
Assert.assertTrue("end".equals(taskInstance.getToken().getNode().getName()));
  |                     
  |             } catch (RuntimeException e) {
  |                     Assert.fail(e.getMessage());
  |             }
  |             catch (Exception e) {
  |                     Assert.fail(e.getMessage());
  |             }
  |     }
  | 

  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <process-definition  xmlns=""  name="SimpleWorkflow">
  | 
  | 
  |     <swimlane name="swimlane1">
  |             <assignment expression="user(test)"></assignment>
  |     </swimlane>
  | 
  | 
  |     <start-state name="start">
  |             <task name="startTask" swimlane="swimlane1">
  |                     <description>
  |                             The start node's Task
  |                     </description>
  |             </task>
  |             <transition to="taskNode1" name="starting 
transition"></transition>
  |     </start-state>
  | 
  | 
  |     <task-node name="taskNode1">
  |             <task swimlane="swimlane1" name="firstTask">
  |                     <description>
  |                             The first task in the workflow
  |                     </description>
  |             </task>
  |             <transition to="taskNode2" name="to taskNode2"></transition>
  |             <transition to="end" name="finish"></transition>
  |     </task-node>
  | 
  |     <task-node name="taskNode2">
  |             <task name="secondTask" swimlane="swimlane1">
  |                     <description>
  |                             The second task in the workflow
  |                     </description>
  |             </task>
  |             <transition to="end" name="to end"></transition>
  |     </task-node>
  | 
  | 
  |     <end-state name="end"></end-state>
  | 
  | 
  | </process-definition>
  | 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4122220#4122220

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4122220
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to