Community

Subprocess wait state signal handling not working from parent process (jBPM 4.3)

reply from apurv agnihotri in jBPM - View the full discussion

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
 
 
 
}

}

Reply to this message by going to Community

Start a new discussion in jBPM at Community