In the same subprocess as above we are trying to use timer as well but as soon as the timer is added in subprocess xml i get following error irrespective of whether signal to the activity in subprocess(from main process) is given before or after timer due time(I am making the parent execution thread to sleep so as to signal execute whithin/after timer fire time).:-
May 27, 2010 7:23:30 PM org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: 2292, SQLState: 23000
May 27, 2010 7:23:30 PM org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: ORA-02292: integrity constraint (JBPM.FK_EXEC_SUBPI) violated - child record found
May 27, 2010 7:23:30 PM org.hibernate.event.def.AbstractFlushingEventListener performExecutions
SEVERE: Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException
: could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#46] at org.hibernate.exception.SQLStateConverter.convert(
SQLStateConverter.java:94) at org.hibernate.exception.JDBCExceptionHelper.convert(
JDBCExceptionHelper.java:66) at org.hibernate.persister.entity.AbstractEntityPersister.delete(
AbstractEntityPersister.java:2569) at org.hibernate.persister.entity.AbstractEntityPersister.delete(
AbstractEntityPersister.java:2725) at org.hibernate.action.EntityDeleteAction.execute(
EntityDeleteAction.java:97) 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:172) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(
AbstractFlushingEventListener.java:321) at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(
DefaultAutoFlushEventListener.java:64) at org.hibernate.impl.SessionImpl.autoFlushIfRequired(
SessionImpl.java:996) at org.hibernate.impl.SessionImpl.list(
SessionImpl.java:1141) at org.hibernate.impl.QueryImpl.list(
QueryImpl.java:102) at org.jbpm.pvm.internal.hibernate.DbSessionImpl.deleteProcessDefinitionHistory(
DbSessionImpl.java:168) at org.jbpm.pvm.internal.cmd.DeleteDeploymentCmd.execute(
DeleteDeploymentCmd.java:78) at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(
DefaultCommandService.java:42) at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(
StandardTransactionInterceptor.java:54) 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.repository.RepositoryServiceImpl.deleteDeploymentCascade(
RepositoryServiceImpl.java:73) at org.jbpm.test.JbpmTestCase.deleteRegisteredDeployments(
JbpmTestCase.java:166) at org.jbpm.test.JbpmTestCase.tearDown(
JbpmTestCase.java:95) at junit.framework.TestCase.runBare(
TestCase.java:140) at junit.framework.TestResult$1.protect(
TestResult.java:110) at junit.framework.TestResult.runProtected(
TestResult.java:128) at junit.framework.TestResult.run(
TestResult.java:113) at junit.framework.TestCase.run(
TestCase.java:124) at junit.framework.TestSuite.runTest(
TestSuite.java:232) at junit.framework.TestSuite.run(
TestSuite.java:227) at org.junit.internal.runners.JUnit38ClassRunner.run(
JUnit38ClassRunner.java:79) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(
JUnit4TestReference.java:46) 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: ORA-02292: integrity constraint (JBPM.FK_EXEC_SUBPI) violated - child record found
at oracle.jdbc.driver.DatabaseError.throwSqlException(
DatabaseError.java:125) at oracle.jdbc.driver.T4CTTIoer.processError(
T4CTTIoer.java:305) at oracle.jdbc.driver.T4CTTIoer.processError(
T4CTTIoer.java:272) at oracle.jdbc.driver.T4C8Oall.receive(
T4C8Oall.java:623) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(
T4CPreparedStatement.java:181) at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(
T4CPreparedStatement.java:543) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(
OracleStatement.java:1028) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(
OraclePreparedStatement.java:2888) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(
OraclePreparedStatement.java:2960) at org.hibernate.persister.entity.AbstractEntityPersister.delete(
AbstractEntityPersister.java:2551)
my timerlistener code is as below :-
import org.jbpm.api.listener.EventListener;
import org.jbpm.api.listener.EventListenerExecution;
public class WaitStateTimeoutListener implements EventListener{
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public void notify(EventListenerExecution arg0) throws Exception {
System.out.println("WaitStateTimeoutListener called");
// TODO Auto-generated method stub
}
}