User development,
A new message was posted in the thread "Automatic transition from wait state - is it
correct?":
http://community.jboss.org/message/525387#525387
Author : Maciej Swiderski
Profile :
http://community.jboss.org/people/swiderski.maciej
Message:
--------------------------------------------------------------
I tried as you described, meaning I set timer on transition for wait state after timer is
fired it goes to java activity which is responsible for gathering some information and
then it goes to decision point which based on process variables take decision what to do.
It works but not for all scenarios. It throws an exception when decision point forwards
flow to wait state again.
wait state-1 -> java -> decision -> wait state-1
Exception is:
2010-02-10 13:08:48,204 WARN [org.hibernate.util.JDBCExceptionReporter]
(http-127.0.0.1-8080-1) SQL Error: -104, SQLState: 23000
2010-02-10 13:08:48,204 ERROR [org.hibernate.util.JDBCExceptionReporter]
(http-127.0.0.1-8080-1) Violation of unique constraint $$: duplicate value(s) for
column(s) $$: SYS_CT_613 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_=?]
2010-02-10 13:08:48,204 ERROR [org.hibernate.event.def.AbstractFlushingEventListener]
(http-127.0.0.1-8080-1) Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: could not update:
[org.jbpm.pvm.internal.model.ExecutionImpl#260128]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
.
.
.
Caused by: java.sql.SQLException: Violation of unique constraint $$: duplicate value(s)
for column(s) $$: SYS_CT_613 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.jboss.resource.adapter.jdbc.CachedPreparedStatement.executeUpdate(CachedPreparedStatement.java:96)
at
org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:365)
at
org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2435)
but this scenario works perfectly fine:
wait state-1 -> java -> decision -> wait state-2
Same problem happens as unit test and on JBoss AS and regardless if signaling is made by a
timer or manually.
Any ideas what could be wrong?
Cheers,
Maciej
--------------------------------------------------------------
To reply to this message visit the message page:
http://community.jboss.org/message/525387#525387