[jBPM] - Joining of non-concurrent decision paths seems to be broken in 4.4
by Peter Horvath
Peter Horvath [http://community.jboss.org/people/h.peter] created the discussion
"Joining of non-concurrent decision paths seems to be broken in 4.4"
To view the discussion, visit: http://community.jboss.org/message/555138#555138
--------------------------------------------------------------
Hello All,
We have a quite complicated process definion with a lot of cases where a step has to be executed only on specific condition - something like the following diagram (see attached full example process definition JPDL file):
http://community.jboss.org/servlet/JiveServlet/showImage/4429/ForkJoinTes... http://community.jboss.org/servlet/JiveServlet/downloadImage/4429/450-189...
We used join nodes with *multiplicity="1"* setting to join the two possible outcome paths of the decision node:
*<join g="347,51,48,48" multiplicity="1" name="join1">
<transition g="424,76:-7,-17" name="to join2" to="join2"/>
</join>*
This approach used to work OK with JBPM 4.3 but it fails with version 4.4.
It seems that the handling of join nodes has been changed in this version: the first join node sets state to ended on the incoming execution which is not destroyed at that step but is delegated through to the outgoing transition, so the next join node (the last one before the end in the example) fails with the following exception:
Exception in thread "main" org.jbpm.api.JbpmException: execution[ForkJoinTest.10001.to script2.10002] is not active: ended
at org.jbpm.pvm.internal.model.ExecutionImpl.checkActive(ExecutionImpl.java:1084)
at org.jbpm.pvm.internal.model.ExecutionImpl.take(ExecutionImpl.java:481)
at org.jbpm.jpdl.internal.activity.ForkActivity.execute(ForkActivity.java:95)
at org.jbpm.jpdl.internal.activity.ForkActivity.execute(ForkActivity.java:46)
at org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:60)
at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:672)
at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:632)
at org.jbpm.pvm.internal.model.ExecutionImpl.start(ExecutionImpl.java:217)
at org.jbpm.pvm.internal.cmd.StartProcessInstanceInLatestCmd.execute(StartProcessInstanceInLatestCmd.java:63)
at org.jbpm.pvm.internal.cmd.StartProcessInstanceInLatestCmd.execute(StartProcessInstanceInLatestCmd.java:36)
at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
at org.jbpm.pvm.internal.tx.SpringCommandCallback.doInTransaction(SpringCommandCallback.java:45)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:49)
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:56)
at org.jbpm.pvm.internal.svc.ExecutionServiceImpl.startProcessInstanceByKey(ExecutionServiceImpl.java:67)
For me, this seems to be a bug - clearly, the behaviour of JBPM has been changed between version 4.3 and 4.4. The attached process definition is executed correctly with JBPM 4.3.
What do you think about this?
Regards,
Peter
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/555138#555138]
Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 5 months
Re: [jboss-user] [jBPM] - Why I can't run jbpm4.3 examples on oracle server?
by zhang june
zhang june [http://community.jboss.org/people/june20100606] replied to the discussion
"Why I can't run jbpm4.3 examples on oracle server?"
To view the discussion, visit: http://community.jboss.org/message/555099#555099
--------------------------------------------------------------
Below is a part of the stack trace. Script was going to update the content of the oracle table. Where is the sql statement from?
10:08:36,203 FIN | [HibernateSessionResource] ----- beginning hibernate tx 5003359 --------------------------------------------------------
10:08:36,250 FIN | [SQL]
select
*
from
( select
propertyim0_.KEY_ as KEY1_2_,
propertyim0_.VERSION_ as VERSION2_2_,
propertyim0_.VALUE_ as VALUE3_2_
from
JBPM4_PROPERTY propertyim0_ )
where
rownum <= ?
10:08:36,500 FST | [StringType] returning 'db.version' as column: KEY1_2_
10:08:36,500 FST | [IntegerType] returning '0' as column: VERSION2_2_
10:08:36,500 FST | [StringType] returning '4.3' as column: VALUE3_2_
10:08:36,578 FIN | [SQL]
select
this_.KEY_ as KEY1_2_0_,
this_.VERSION_ as VERSION2_2_0_,
this_.VALUE_ as VALUE3_2_0_
from
JBPM4_PROPERTY this_
where
this_.KEY_=?
10:08:36,578 FST | [StringType] binding 'next.dbid' to parameter: 1
10:08:36,593 FST | [StringType] returning 'next.dbid' as column: KEY1_2_0_
10:08:36,593 FST | [IntegerType] returning '2' as column: VERSION2_2_0_
10:08:36,593 FST | [StringType] returning '20001' as column: VALUE3_2_0_
10:08:36,593 FIN | [SQL]
select
this_.KEY_ as KEY1_2_0_,
this_.VERSION_ as VERSION2_2_0_,
this_.VALUE_ as VALUE3_2_0_
from
JBPM4_PROPERTY this_
where
this_.KEY_=?
10:08:36,593 FST | [StringType] binding 'db.version' to parameter: 1
10:08:36,609 FST | [StringType] returning 'db.version' as column: KEY1_2_0_
10:08:36,609 INF | [CheckDbCmd] jBPM version info: library[4.3], schema[4.3]
10:08:36,609 FIN | [HibernateSessionResource] ----- committing hibernate tx 19439176 -------------------------------------------------------
***********************************deploymentId = repositoryService.createDeployment()
.addResourceFromClasspath("org/jbpm/examples/java/process.jpdl.xml")
.deploy(); *********************************************************************************************************************************
10:11:39,562 FIN | [HibernateSessionResource] ----- beginning hibernate tx 17087715 --------------------------------------------------------
10:11:40,000 FIN | [DatabaseDbidGenerator] last id -2 was consumed. acquiring new block...
10:11:40,000 FIN | [HibernateSessionResource] ----- beginning hibernate tx 25916056 --------------------------------------------------------
10:11:40,281 FIN | [SQL]
select
propertyim0_.KEY_ as KEY1_2_,
propertyim0_.VERSION_ as VERSION2_2_,
propertyim0_.VALUE_ as VALUE3_2_
from
JBPM4_PROPERTY propertyim0_
where
propertyim0_.KEY_='next.dbid'
10:11:40,281 FST | [StringType] returning 'next.dbid' as column: KEY1_2_
10:11:40,281 FST | [IntegerType] returning '2' as column: VERSION2_2_
10:11:40,281 FST | [StringType] returning '20001' as column: VALUE3_2_
10:11:40,328 FIN | [SQL]
update
JBPM4_PROPERTY
set
VERSION_=?,
VALUE_=?
where
KEY_=?
and VERSION_=?
10:11:40,328 FST | [IntegerType] binding '3' to parameter: 1
10:11:40,328 FST | [StringType] binding '30001' to parameter: 2
10:11:40,328 FST | [StringType] binding 'next.dbid' to parameter: 3
10:11:40,328 FST | [IntegerType] binding '2' to parameter: 4
10:11:40,328 FIN | [HibernateSessionResource] ----- committing hibernate tx 25831799 -------------------------------------------------------
10:11:40,328 FIN | [DatabaseDbidGenerator] acquired new id block [20001-30000]
10:11:40,359 FIN | [SQL]
select
lob_.DBID_,
lob_.DBVERSION_ as DBVERSION2_5_,
lob_.BLOB_VALUE_ as BLOB3_5_
from
JBPM4_LOB lob_
where
lob_.DBID_=?
10:11:40,375 FST | [LongType] binding '20002' to parameter: 1
10:11:41,640 FIN | [SQL]
insert
into
JBPM4_DEPLOYMENT
(NAME_, TIMESTAMP_, STATE_, DBID_)
values
(?, ?, ?, ?)
10:11:41,640 FST | [TextType] binding null to parameter: 1
10:11:41,640 FST | [LongType] binding '0' to parameter: 2
10:11:41,640 FST | [StringType] binding 'active' to parameter: 3
10:11:41,640 FST | [LongType] binding '20001' to parameter: 4
10:11:41,656 WRN | [JDBCExceptionReporter] SQL Error: 904, SQLState: 42000
10:11:41,656 SEV | [JDBCExceptionReporter] ORA-00904: 无效列名
10:11:41,656 WRN | [JDBCExceptionReporter] SQL Error: 904, SQLState: 42000
10:11:41,656 SEV | [JDBCExceptionReporter] ORA-00904: 无效列名
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/555099#555099]
Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 5 months
[jBPM] - jBpm4.4 +spring test error(Could not synchronize database state with session)?
by wu arron
wu arron [http://community.jboss.org/people/wuarron] created the discussion
"jBpm4.4 +spring test error(Could not synchronize database state with session)?"
To view the discussion, visit: http://community.jboss.org/message/555094#555094
--------------------------------------------------------------
I use the jBpm4.4. install with spring,do like this:
I modify the build.xml file 187 line for create.cfg target.and change the tx to "spring",then ant create.cfg.I get the cfg files and copy all the files to example classpath.I Junit the *AsyncActivityTest.java.*
and get the error:
> 11:17:29,453 FIN | [AsyncActivityTest] === starting testAsyncActivity =============================
> 11:17:29,703 FIN | [ProcessDefinitionImpl] creating new execution for process 'AsyncActivity'
> 11:17:29,703 FIN | [DatabaseIdComposer] generated execution id AsyncActivity.30013
> 11:17:29,718 FIN | [ExecuteActivity] executing activity(22142166)
> 11:17:29,718 FIN | [JobExecutorMessageSession] sending message ExecuteActivityMessage
> 11:17:29,796 FIN | [ExecuteJobCmd] executing job ExecuteActivityMessage[30014]...
> 11:17:29,812 FIN | [ExecuteActivity] executing activity(generate pdf)
> 11:17:29,812 FIN | [DispatcherThread] submitting jobs [30014]
> 11:17:29,843 FIN | [DispatcherThread] added jobs [30014] to the queue
> 11:17:29,859 FIN | [ExecuteJobCmd] executing job ExecuteActivityMessage[30014]...
> 11:17:29,859 FIN | [ExecuteActivity] executing activity(generate pdf)
> log4j:WARN No appenders could be found for logger (org.jbpm.examples.async.activity.Application).
> log4j:WARN Please initialize the log4j system properly.
> log4j:WARN No appenders could be found for logger (org.jbpm.examples.async.activity.Application).
> log4j:WARN Please initialize the log4j system properly.
> 11:17:29,890 FIN | [JobExecutorMessageSession] sending message ExecuteActivityMessage
> 11:17:29,890 FIN | [ExecuteJobCmd] executed job ExecuteActivityMessage[30014]
> 11:17:29,953 FIN | [JobExecutorMessageSession] sending message ExecuteActivityMessage
> 11:17:29,953 FIN | [ExecuteJobCmd] executed job ExecuteActivityMessage[30014]
> ### EXCEPTION ###########################################
> 11:17:29,953 SEV | [AbstractFlushingEventListener] Could not synchronize database state with session
> org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.pvm.internal.model.ExecutionImpl#30013]
> at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1792)
> at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2435)
> 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.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)
> at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
> at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:656)
> at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
> at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
> at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:147)
> at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:49)
> 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:56)
> at org.jbpm.pvm.internal.jobexecutor.JobParcel.run(JobParcel.java:48)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
> at java.util.concurrent.FutureTask.run(FutureTask.java:123)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> ### EXCEPTION ###########################################
> 11:17:30,031 FIN | [DispatcherThread] submitting jobs [30016]
> 11:17:30,031 FIN | [DispatcherThread] added jobs [30016] to the queue
> 11:17:30,046 FIN | [ExecuteJobCmd] executing job ExecuteActivityMessage[30016]...
> 11:17:30,046 FIN | [ExecuteActivity] executing activity(calculate primes)
> 11:17:30,062 FIN | [ExecuteActivity] executing activity(end)
> 11:17:30,062 FIN | [ExecutionImpl] execution[AsyncActivity.30013] ends with state ended
> 11:17:30,062 FIN | [DbSessionImpl] Deleting process instance AsyncActivity.30013
> 11:17:30,078 FIN | [ExecuteJobCmd] executing job ExecuteActivityMessage[30016]...
> 11:17:30,078 FIN | [ExecuteJobCmd] executed job ExecuteActivityMessage[30016]
> 11:17:30,078 FIN | [ExecuteActivity] executing activity(calculate primes)
> 11:17:30,078 FIN | [ExecuteActivity] executing activity(end)
> 11:17:30,078 FIN | [ExecutionImpl] execution[AsyncActivity.30013] ends with state ended
> ### EXCEPTION ###########################################
> 11:17:30,078 SEV | [AbstractFlushingEventListener] Could not synchronize database state with session
> org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.pvm.internal.model.ExecutionImpl#30013]
> at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1792)
> at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2435)
> 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.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.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:835)
> at org.jbpm.pvm.internal.hibernate.DbSessionImpl.findProcessInstanceByIdIgnoreSuspended(DbSessionImpl.java:148)
> at org.jbpm.pvm.internal.hibernate.DbSessionImpl.deleteProcessInstance(DbSessionImpl.java:185)
> at org.jbpm.pvm.internal.model.ExecutionImpl.end(ExecutionImpl.java:396)
> at org.jbpm.jpdl.internal.activity.EndActivity.execute(EndActivity.java:81)
> at org.jbpm.jpdl.internal.activity.EndActivity.execute(EndActivity.java:43)
> at org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:60)
> at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:672)
> at org.jbpm.pvm.internal.model.op.ExecuteActivityMessage.executeVoid(ExecuteActivityMessage.java:45)
> at org.jbpm.pvm.internal.job.MessageImpl.execute(MessageImpl.java:46)
> at org.jbpm.pvm.internal.job.MessageImpl.execute(MessageImpl.java:32)
> at org.jbpm.pvm.internal.cmd.ExecuteJobCmd.execute(ExecuteJobCmd.java:79)
> at org.jbpm.pvm.internal.cmd.ExecuteJobCmd.execute(ExecuteJobCmd.java:41)
> at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
> at org.jbpm.pvm.internal.tx.SpringCommandCallback.doInTransaction(SpringCommandCallback.java:45)
> at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
> at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:49)
> 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:56)
> at org.jbpm.pvm.internal.jobexecutor.JobParcel.run(JobParcel.java:48)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
> at java.util.concurrent.FutureTask.run(FutureTask.java:123)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> ### EXCEPTION ###########################################
> 11:17:30,093 FIN | [ExecuteJobCmd] job 30014 no longer exists
> ### EXCEPTION ###########################################
> 11:17:30,093 SEV | [ExecuteJobCmd] exception while executing 'ExecuteActivityMessage[30016]'
> org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.pvm.internal.model.ExecutionImpl#30013]
> at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1792)
> at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2435)
> 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.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.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:835)
> at org.jbpm.pvm.internal.hibernate.DbSessionImpl.findProcessInstanceByIdIgnoreSuspended(DbSessionImpl.java:148)
> at org.jbpm.pvm.internal.hibernate.DbSessionImpl.deleteProcessInstance(DbSessionImpl.java:185)
> at org.jbpm.pvm.internal.model.ExecutionImpl.end(ExecutionImpl.java:396)
> at org.jbpm.jpdl.internal.activity.EndActivity.execute(EndActivity.java:81)
> at org.jbpm.jpdl.internal.activity.EndActivity.execute(EndActivity.java:43)
> at org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:60)
> at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:672)
> at org.jbpm.pvm.internal.model.op.ExecuteActivityMessage.executeVoid(ExecuteActivityMessage.java:45)
> at org.jbpm.pvm.internal.job.MessageImpl.execute(MessageImpl.java:46)
> at org.jbpm.pvm.internal.job.MessageImpl.execute(MessageImpl.java:32)
> at org.jbpm.pvm.internal.cmd.ExecuteJobCmd.execute(ExecuteJobCmd.java:79)
> at org.jbpm.pvm.internal.cmd.ExecuteJobCmd.execute(ExecuteJobCmd.java:41)
> at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
> at org.jbpm.pvm.internal.tx.SpringCommandCallback.doInTransaction(SpringCommandCallback.java:45)
> at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
> at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:49)
> 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:56)
> at org.jbpm.pvm.internal.jobexecutor.JobParcel.run(JobParcel.java:48)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
> at java.util.concurrent.FutureTask.run(FutureTask.java:123)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> ### EXCEPTION ###########################################
> ### EXCEPTION ###########################################
> 11:17:30,093 INF | [DefaultCommandService] exception while executing command org.jbpm.pvm.internal.cmd.ExecuteJobCmd@fa706d
> org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.pvm.internal.model.ExecutionImpl#30013]
> at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1792)
> at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2435)
> 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.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.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:835)
> at org.jbpm.pvm.internal.hibernate.DbSessionImpl.findProcessInstanceByIdIgnoreSuspended(DbSessionImpl.java:148)
> at org.jbpm.pvm.internal.hibernate.DbSessionImpl.deleteProcessInstance(DbSessionImpl.java:185)
> at org.jbpm.pvm.internal.model.ExecutionImpl.end(ExecutionImpl.java:396)
> at org.jbpm.jpdl.internal.activity.EndActivity.execute(EndActivity.java:81)
> at org.jbpm.jpdl.internal.activity.EndActivity.execute(EndActivity.java:43)
> at org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:60)
> at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:672)
> at org.jbpm.pvm.internal.model.op.ExecuteActivityMessage.executeVoid(ExecuteActivityMessage.java:45)
> at org.jbpm.pvm.internal.job.MessageImpl.execute(MessageImpl.java:46)
> at org.jbpm.pvm.internal.job.MessageImpl.execute(MessageImpl.java:32)
> at org.jbpm.pvm.internal.cmd.ExecuteJobCmd.execute(ExecuteJobCmd.java:79)
> at org.jbpm.pvm.internal.cmd.ExecuteJobCmd.execute(ExecuteJobCmd.java:41)
> at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
> at org.jbpm.pvm.internal.tx.SpringCommandCallback.doInTransaction(SpringCommandCallback.java:45)
> at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
> at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:49)
> 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:56)
> at org.jbpm.pvm.internal.jobexecutor.JobParcel.run(JobParcel.java:48)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
> at java.util.concurrent.FutureTask.run(FutureTask.java:123)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> ### EXCEPTION ###########################################
> 11:17:30,125 FIN | [JobExceptionHandler] starting new transaction for handling job exception
> 11:17:30,140 FIN | [JobExceptionHandler] handling job 30016 exception: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.pvm.internal.model.ExecutionImpl#30013]
> 11:17:30,140 FIN | [JobExceptionHandler] completed transaction for handling job exception
> 11:17:30,140 FIN | [DeleteDeploymentCmd] deleting deployment 30007
> 11:17:30,203 FIN | [ExecuteJobCmd] job 30016 no longer exists
> 11:17:30,250 FIN | [AsyncActivityTest] === ending testAsyncActivity =============================
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/555094#555094]
Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 5 months
Re: [jboss-user] [JBoss Microcontainer] - About JBoss5 classloader
by nesta fdb
nesta fdb [http://community.jboss.org/people/jnesta] replied to the discussion
"About JBoss5 classloader"
To view the discussion, visit: http://community.jboss.org/message/555092#555092
--------------------------------------------------------------
Hi Ales,
Thank you very much.
>
> Yup, both should be in the same domain - DefaultDomain.
> How can you tell B is not visible to A?
A.java snippet
public class A {
public void start() {
System.out.println(this.getClass()..getClassLoader());
// and print parent and ancestor classloader
System.out.println(new B());
}
}
When JBoss starts, NoClassDefFoundError is thrown out.
According to my understanding, two BaseClassLoader instances for a.beans and b.beans share a same class repository (DefaultDomain). If B is visible to A, then BaseClassLoader for a.beans can load class B.
The scenario contains servel steps:
1. BaseClassLoaders are registered to class repository (DefaultDomain)
2. BaseClassLoader for a.beans trys to load class B, and it trys from class repository, but it can't find.
3. Because BaseClassLoader for b.beans declares that it can load class B
4. Class repository delegates BaseClassLoader for b.beans to load class B
But this doesn't explain why NoClassDefFoundError happens.
Another question:
When is contextClassLoader of current thread set in JBoss5?
Regards,
Nesta
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/555092#555092]
Start a new discussion in JBoss Microcontainer at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 5 months