Process: <?xml version="1.0" encoding="UTF-8"?> | | <process name="TwoForks" xmlns="http://jbpm.org/4.0/jpdl"> | <start g="179,17,32,29" name="start1"> | <transition g="-43,-18" name="to fork1" to="fork1"/> | </start> | <fork g="185,95,49,50" name="fork1"> | <transition name="left" to="task1" g="-44,-18"/> | <transition name="right" to="task2" g="-44,-18"/> | </fork> | <end g="193,606,38,33" name="end1"/> | <task name="task1" g="90,177,73,44"> | <transition name="to fork2" to="fork2" g="-43,-18"/> | </task> | <task name="task2" g="249,172,83,48"> | <transition name="to join2" to="join2" g="288,425:-41,-18"/> | </task> | <task name="task3" g="21,313,88,45"> | <transition name="to join1" to="join1" g="-41,-18"/> | </task> | <task name="task4" g="154,313,88,48"> | <transition name="to join1" to="join1" g="-41,-18"/> | </task> | <fork name="fork2" g="108,250,37,28"> | <transition name="left" to="task3" g="-44,-18"/> | <transition name="right" to="task4" g="-44,-18"/> | </fork> | <join name="join1" g="112,407,51,31"> | <transition name="to join2" to="join2" g="-41,-18"/> | </join> | <join name="join2" g="192,511,57,44"> | <transition name="to end1" to="end1" g="-42,-18"/> | </join> | </process>
Unit Test: package org.jbpm.examples.fork; | | import java.util.Date; | import java.util.List; | | import org.jbpm.api.ProcessInstance; | import org.jbpm.api.task.Task; | import org.jbpm.test.JbpmTestCase; | | import junit.framework.TestCase; | | public class TwoForksTest extends JbpmTestCase { | | | String deploymentId; | | protected void setUp() throws Exception { | super.setUp(); | | deploymentId = repositoryService.createDeployment() | .addResourceFromClasspath("org/jbpm/examples/fork/process.jpdl.xml") | .deploy(); | } | | protected void tearDown() throws Exception { | repositoryService.deleteDeploymentCascade(deploymentId); | | super.tearDown(); | } | | public void testTwoForks(){ | ProcessInstance processInstance = executionService.startProcessInstanceByKey("TwoForks"); | List<Task> tasks = taskService.createTaskQuery().list(); | for(Task task:tasks){ | taskService.completeTask(task.getId()); | } | Date endTime = historyService | .createHistoryProcessInstanceQuery() | .processInstanceId(processInstance.getId()) | .uniqueResult() | .getEndTime(); | | assertNotNull(endTime); | } | | } | Log: 16:07:07,015 SEV | [BaseJbpmTestCase] TEST THROWS EXCEPTION: could not update: [org.jbpm.pvm.internal.model.ExecutionImpl#14] | org.hibernate.exception.ConstraintViolationException: could not update: [org.jbpm.pvm.internal.model.ExecutionImpl#14] | at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94) | at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) | at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2453) | at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2335) | at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2635) | at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115) | at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279) | at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263) | at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168) | at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) | at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50) | at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027) | at org.jbpm.pvm.internal.tx.HibernateSessionResource.prepare(HibernateSessionResource.java:56) | at org.jbpm.pvm.internal.tx.StandardTransaction.commit(StandardTransaction.java:106) | at org.jbpm.pvm.internal.tx.StandardTransaction.complete(StandardTransaction.java:65) | at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:61) | at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53) | at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40) | at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55) | at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43) | at org.jbpm.pvm.internal.svc.TaskServiceImpl.completeTask(TaskServiceImpl.java:88) | at org.jbpm.examples.fork.TwoForksTest.testTwoForks(TwoForksTest.java:35) | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) | at java.lang.reflect.Method.invoke(Unknown Source) | at junit.framework.TestCase.runTest(TestCase.java:164) | at org.jbpm.test.BaseJbpmTestCase.runTest(BaseJbpmTestCase.java:80) | at junit.framework.TestCase.runBare(TestCase.java:130) | at junit.framework.TestResult$1.protect(TestResult.java:106) | at junit.framework.TestResult.runProtected(TestResult.java:124) | at junit.framework.TestResult.run(TestResult.java:109) | at junit.framework.TestCase.run(TestCase.java:120) | at junit.framework.TestSuite.runTest(TestSuite.java:230) | at junit.framework.TestSuite.run(TestSuite.java:225) | at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) | at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) | at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) | at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) | at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) | at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) | Caused by: java.sql.SQLException: Violation of unique constraint $$: duplicate value(s) for column(s) $$: SYS_CT_9890 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) | ... 38 more Regards, David View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4267063#4267063 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4267063 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user