cancel
Showing results for 
Search instead for 
Did you mean: 

Error on closing the process

filipearaujo
Champ in-the-making
Champ in-the-making
Hi everyone,

I'm trying to create a workflow with a subprocess and a task, something like this.

[img]http://dl.dropbox.com/u/175705/workflow.jpg[/img]

The subprocess has this workflow and I'm using a receive task to clean the stack:

[img]http://dl.dropbox.com/u/175705/PubSub_behwork.jpg[/img]

The problem is when the condition for endevent in the exclusivegateway is true, the engine runs the "Service Task", runs the endevent of the process but when the engine tries to close the execution the following exception appears:

Sep 6, 2011 1:36:05 PM org.activiti.engine.impl.interceptor.CommandContext close
SEVERE: Error while closing command context
org.apache.ibatis.exceptions.PersistenceException:
### Error updating database.  Cause: org.h2.jdbc.JdbcSQLException: Referential integrity constraint violation: "ACT_FK_EXE_PROCINST: PUBLIC.ACT_RU_EXECUTION FOREIGN KEY(PROC_INST_ID_) REFERENCES PUBLIC.ACT_RU_EXECUTION(ID_)"; SQL statement:
delete from ACT_RU_EXECUTION where ID_ = ? [23003-132]
### The error may involve org.activiti.engine.impl.persistence.entity.ExecutionEntity.deleteExecution-Inline
### The error occurred while setting parameters
### Cause: org.h2.jdbc.JdbcSQLException: Referential integrity constraint violation: "ACT_FK_EXE_PROCINST: PUBLIC.ACT_RU_EXECUTION FOREIGN KEY(PROC_INST_ID_) REFERENCES PUBLIC.ACT_RU_EXECUTION(ID_)"; SQL statement:
delete from ACT_RU_EXECUTION where ID_ = ? [23003-132]
   at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:120)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.delete(DefaultSqlSession.java:131)
   at org.activiti.engine.impl.db.DbSqlSession$DeleteById.execute(DbSqlSession.java:136)
   at org.activiti.engine.impl.db.DbSqlSession.flushDeletes(DbSqlSession.java:434)
   at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:339)
   at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:146)
   at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:102)
   at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)
   at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
   at org.activiti.engine.impl.RuntimeServiceImpl.signal(RuntimeServiceImpl.java:131)
   at org.activiti.designer.test.ProcessTestPubSubTesteNovo.startProcess(ProcessTestPubSubTesteNovo.java:79)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
   at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
   at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
   at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
   at org.junit.rules.TestWatchman$1.evaluate(TestWatchman.java:48)
   at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
   at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
   at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
   at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
   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: org.h2.jdbc.JdbcSQLException: Referential integrity constraint violation: "ACT_FK_EXE_PROCINST: PUBLIC.ACT_RU_EXECUTION FOREIGN KEY(PROC_INST_ID_) REFERENCES PUBLIC.ACT_RU_EXECUTION(ID_)"; SQL statement:
delete from ACT_RU_EXECUTION where ID_ = ? [23003-132]
   at org.h2.message.DbException.getJdbcSQLException(DbException.java:316)
   at org.h2.message.DbException.get(DbException.java:167)
   at org.h2.message.DbException.get(DbException.java:144)
   at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:374)
   at org.h2.constraint.ConstraintReferential.checkRowRefTable(ConstraintReferential.java:391)
   at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:271)
   at org.h2.table.Table.fireConstraints(Table.java:766)
   at org.h2.table.Table.fireAfterRow(Table.java:783)
   at org.h2.command.dml.Delete.update(Delete.java:79)
   at org.h2.command.CommandContainer.update(CommandContainer.java:70)
   at org.h2.command.Command.executeUpdate(Command.java:198)
   at org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:179)
   at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:22)
   at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:51)
   at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:29)
   at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:75)
   at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:43)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:118)
   … 33 more

Maybe is because the parallelgateway i don't know.

I appreciate any help.  Smiley Sad

Thanks a lot,

Filipe Araújo
5 REPLIES 5

trademak
Star Contributor
Star Contributor
Hi,

To give an answer I really need the BAR file you used to deploy the process on the Engine.

Best regards,

filipearaujo
Champ in-the-making
Champ in-the-making
I'm using the eclipse plugin (3.6), and I'm testing (deploying) the process with the junit file (in attachment). Is this the BAR file?

Thanks,

Filipe Araújo

filipearaujo
Champ in-the-making
Champ in-the-making
Can anybody help me?  :?

jbarrez
Star Contributor
Star Contributor
The exception indicates that altough your process is ended, there is an execution loose somewhere. How many time do you pass through the exclusive gw below going to the left?

filipearaujo
Champ in-the-making
Champ in-the-making
Multiple times, depends of the value published in the publish task, but more than once for certain.