[jbpm-users] [jBPM Users] - Violation of unique constraint with two splits (JBPM-2553)

Alkero do-not-reply at jboss.com
Mon Sep 28 05:26:39 EDT 2009


Tow split steps with two identical transition names cause a violation of unique constraint in JBPM4_EXECUTION table.

Process Definition: 

<?xml version="1.0" encoding="UTF-8"?> 
  | <process key="test" name="test" xmlns="http://jbpm.org/4.0/jpdl"> 
  |    <start g="82,38,41,27" name="start1"> 
  |       <transition g="-43,-18" name="to fork1" to="fork1"/> 
  |    </start> 
  |    <fork g="79,112,25,20" name="fork1"> 
  |       <transition name="to task1" to="task1" g="-44,-18"/> 
  |       <transition name="to task2" to="task2" g="-44,-18"/> 
  |    </fork> 
  |    <fork g="88,263,65,27" name="fork2"> 
  |       <transition name="to task1" to="task4" g="-44,-18"/> 
  |       <transition name="to task3" to="task3" g="-44,-18"/> 
  |    </fork> 
  |    <task assignee="test" name="task1" g="75,189,60,42"> 
  |       <transition name="to fork2" to="fork2" g="-43,-18"/> 
  |    </task> 
  |    <task name="task2" g="163,117,61,31"/> 
  |    <task name="task3" g="189,268,59,37"/> 
  |    <task name="task4" g="93,340,52,40"/> 
  | </process> 
  | 

Test code: 


  | ProcessEngine processEngine = Configuration.getProcessEngine(); 
  | RepositoryService repositoryService = (RepositoryService) processEngine.get(RepositoryService.class); 
  | String deploymentId = repositoryService 
  | .createDeployment() 
  | .addResourceFromClasspath("test.jpdl.xml") 
  |          .deploy(); 
  | Execution execution = processEngine.getExecutionService().startProcessInstanceByKey("test"); 
  | Task task = (Task)processEngine.getTaskService().findPersonalTasks("test").get(0); 
  | processEngine.getTaskService().completeTask(task.getId(),"to fork2"); 
  | 

Exception: 


  | Caused by: java.sql.SQLException: Violation of unique constraint $$: duplicate value(s) for column(s) $$: SYS_CT_970 in statement [update JBPM4_EXECUTION set DBVERSION_=?, ACTIVITYNAME_=?, PROCDEFID_=?, HASVARS_=?, NAME_=?, KEY_=?, ID_=?, STATE_=?, SUSPHISTSTATE_=?, PRIORITY_=?, HISACTINST_=?, PARENT_=?, INSTANCE_=?, SUPEREXEC_=?, SUBPROCINST_=? where DBID_=? and DBVERSION_=?] 
  | at org.hsqldb.jdbc.Util.throwError(Unknown Source) 
  | at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate(Unknown Source) 
  | at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2435) 
  | ... 39 more
  | 


The related jira issue was closed by Ronald but I don't understand why the process definition is indicated as invalid...?

http://jira.jboss.org/jira/browse/JBPM-2553

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

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


More information about the jbpm-users mailing list