[jboss-user] [jBPM Users] - Re: [jBPM 4.2] MySQLIntegrityConstraintViolationException en

xalperte do-not-reply at jboss.com
Mon Nov 16 16:32:08 EST 2009


Yep! sorry.

I deleted some stuff from the previous process definition in order to run it without problems (some custom listeners).

Here the process definition:


  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <process name="Test Websale" xmlns="http://jbpm.org/4.2/jpdl">
  |    <swimlane assignee="${buyer}" name="Buyer"/>
  |    <swimlane candidate-groups="sales" name="Sales Representative"/>
  |    <swimlane assignee="jim" name="Finantial Department"/>
  |    <swimlane assignee="luci" name="Shippment Department"/>
  | 
  |   <start form="tasks/form.create.xhtml" g="81,126,48,48" name="Create new web sale order">
  |     <transition g="-51,-24" name="Start web sale" to="Evaluate web order"/>
  |   </start>
  | 
  |   <task form="tasks/form.evaluate.xhtml" g="209,110,153,80" name="Evaluate web order" swimlane="Sales Representative">
  |     <reminder duedate="1 day" repeat="4 hours"/>
  |     <transition g="220,245:-67,-3" name="More info needed" to="Fix web order data"/>
  |     <transition g="-31,-24" name="Order ok" to="Processing Fork"/>
  |   </task>
  | 
  |   <task form="tasks/form.fix.xhtml" g="204,300,169,43" name="Fix web order data" swimlane="Buyer">
  |     <transition g="363,246:-62,-2" name="More info added" to="Evaluate web order"/>
  |   </task>
  | 
  |   <fork g="432,126,48,48" name="Processing Fork">
  |     <transition g="457,78:-83,-22" name="Process payment" to="Wait for money"/>
  |     <transition g="457,220:-67,4" name="Process shipping" to="Ship item"/>
  |   </fork>
  | 
  |   <task form="tasks/form.money.xhtml" g="509,38,116,80" name="Wait for money" swimlane="Finantial Department">
  |     <transition g="-42,-24" name="Update stock" to="Update books"/>
  |   </task>
  | 
  |   <state g="615,180,100,80" name="Ship item">
  |     <transition g="862,221:-136,-23" name="Items sent" to="Processing Join"/>
  |   </state>
  | 
  |   <join g="839,126,48,48" name="Processing Join">
  |     <transition g="-39,-31" name="Close order" to="Web sale processed"/>
  |   </join>
  | 
  |   <end g="949,126,48,48" name="Web sale processed" state="completed"/>
  | 
  |   <state g="714,39,117,78" name="Update books">
  |     <transition g="862,76:-30,-26" name="Stock updated" to="Processing Join"/>
  |   </state>
  | 
  | </process>
  | 

And here the test case that force the error:


  | public class EndProcessInstanceTest extends JbpmTestCase {
  | 	// Process deployment id
  | 	String deploymentId;	
  | 	
  | 	// Identities
  | 	String salesDept;
  | 	String finantialDept;
  | 	String logisticDept;
  | 	String clients;
  | 	
  | 	String processInstanceId; 
  | 	String processDefinitionId;
  | 		
  | 	// Mail server
  | 	Wiser wiser = new Wiser();
  | 		
  | 	protected void setUp() throws Exception {
  | 		super.setUp();
  | 		
  | 	    // create identities
  | 	    salesDept = identityService.createGroup("sales");
  | 	    finantialDept = identityService.createGroup("finantial");
  | 	    logisticDept = identityService.createGroup("logistic");
  | 	    clients = identityService.createGroup("clients");
  | 
  | 	    identityService.createUser("john", "John", "Doe", "john at doe");
  | 	    identityService.createMembership("john", salesDept, "manager");
  | 
  | 	    identityService.createUser("joe", "Joe", "Smoe", "joe at smoe");
  | 	    identityService.createMembership("joe", salesDept, "sales-repre");
  | 
  | 	    identityService.createUser("jim", "Jim", "Cue", "jim at cue");
  | 	    identityService.createMembership("jim", finantialDept, "employee");
  | 
  | 	    identityService.createUser("luci", "Luci", "Lee", "luci at lee");
  | 	    identityService.createMembership("luci", logisticDept, "employee");
  | 
  | 	    identityService.createUser("rex", "Rex", "Frez", "rex at frez");
  | 	    identityService.createMembership("rex", clients, "client");
  | 
  | 	    // deploy process
  | 	    deploymentId = repositoryService.createDeployment()
  | 	        .addResourceFromClasspath("jboss-test-websale.jpdl.xml")
  | 	        .deploy();
  | 
  | 	    // the tearDown of the parent class will dispose the registered deployments  
  | 	    registerDeployment(deploymentId);	   
  | 
  | 	    processDefinitionId = repositoryService.createProcessDefinitionQuery().
  | 	    						deploymentId(deploymentId).uniqueResult().getId();
  | 	    
  | 	    // start mail server
  | 	    wiser.setPort(2525);
  | 	    wiser.start();
  | 	}
  | 
  | 	protected void tearDown() throws Exception {
  | 		// stop mail server
  | 		wiser.stop();
  | 		
  | 		// delete identities
  | 		identityService.deleteUser("john");
  | 		identityService.deleteUser("joe");
  | 		identityService.deleteUser("jim");
  | 		identityService.deleteUser("luci");
  | 
  | 		identityService.deleteUser("rex");
  | 
  | 		identityService.deleteGroup(salesDept);
  | 		identityService.deleteGroup(finantialDept);
  | 		identityService.deleteGroup(logisticDept);
  | 		identityService.deleteGroup(clients);
  | 				
  | 		super.tearDown();
  | 	}
  | 
  | 	/**
  | 	 * Start a new process instance and force the instance end
  | 	 * 
  | 	 * 	- One task and one Job will be created at process startup
  | 	 * 
  | 	 * @throws Throwable
  | 	 */
  | 	public void testEndInstance() throws Throwable {
  | 		// Prepare start variables and start new process instance
  | 		startProcess();
  | 				
  | 		// Force the process instance end with a "cancelled" state
  | 		executionService.endProcessInstance(processInstanceId, "cancelled");
  | 		
  | 		assertProcessInstanceEnded(processDefinitionId);
  | 
  | 	    // Looking for the jobs for the given instance
  | 	    List<Job> jobs = managementService.createJobQuery()
  |         .processInstanceId(processInstanceId)
  |         .list();
  | 
  | 	    // No jobs should exists
  | 	    assertEquals("Unexpected number of jobs", 0, jobs.size());
  | 
  | 		// No group tasks should exists for "joe"
  | 	    List<Task> taskList = taskService.findGroupTasks("joe");	    
  | 	    assertEquals("Expected a single task in joe's task list", 0, taskList.size());		
  | 	}
  | 		
  | 	private void startProcess() throws Throwable {
  | 		ProcessDefinition procDef = repositoryService.createProcessDefinitionQuery().deploymentId(deploymentId).uniqueResult();
  | 
  | 		// Prepare process variables
  | 		Map<String, Object> orderData = new Hashtable<String, Object>();
  | 		orderData.put("buyer", "rex"); // Used by the "Buyer" Swimlane.
  | 
  | 		// Starting a process instance with variables
  | 		ProcessInstance instance = executionService.startProcessInstanceByKey("Test_Websale", orderData);
  | 		processInstanceId = instance.getId();
  | 		
  | 	    // Looking for the jobs for the given instance
  | 	    List<Job> jobs = managementService.createJobQuery()
  |         .processInstanceId(processInstanceId)
  |         .list();
  | 
  | 	    // One job must be started at the first activity
  | 	    assertEquals("Unexpected number of jobs", 1, jobs.size());
  | 
  | 		// A group task must be created for swimlane "Sales Representatives", where joe belongs to
  | 		// Cheking the group task for joe
  | 	    List<Task> taskList = taskService.findGroupTasks("joe");	    
  | 	    assertEquals("Expected a single task in joe's task list", 1, taskList.size());
  | 	}	
  | }
  | 

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

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4265967



More information about the jboss-user mailing list