[
https://jira.jboss.org/jira/browse/JBPM-2036?page=com.atlassian.jira.plug...
]
Alejandro Guizar resolved JBPM-2036.
------------------------------------
Resolution: Done
JBPM2036Test contains durations shorter than a second, and MySQL does not store fractions
of a second into a column of any temporal data type.
http://dev.mysql.com/doc/refman/5.1/en/datetime.html
As a workaround, the test now employs only whole second durations.
StaleObjectStateException when repeating timer signals the token
----------------------------------------------------------------
Key: JBPM-2036
URL:
https://jira.jboss.org/jira/browse/JBPM-2036
Project: JBoss jBPM
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Core Engine
Affects Versions: jBPM-3.2.5.SP1, jBPM 3.3.1 GA
Reporter: Martin Putz
Assignee: Alejandro Guizar
Fix For: jBPM-3.2.5.SP2, jBPM 3.2.6 GA
With the following timer definition on a state node
<state name='state1'>
<timer name='timer-to-end-with-repeat' duedate='1 second'
repeat='5 seconds'>
<action class='org.jbpm.scheduler.exe.TimerDbTest$Signal' />
</timer>
<transition name='to_state2' to='state2'/>
</state>
and the action class execute() method being
public void execute(ExecutionContext executionContext) throws Exception {
executionContext.leaveNode();
}
leads to:
2009-02-10 21:38:45,404 16508 ERROR
[org.hibernate.event.def.AbstractFlushingEventListener] (JbpmJobExecutor:127.0.0.1:1:)
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.job.Timer#86]
at
org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
at
org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
at
org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
at
org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
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:298)
at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at org.jbpm.persistence.db.DbPersistenceService.commit(DbPersistenceService.java:226)
at
org.jbpm.persistence.db.DbPersistenceService.endTransaction(DbPersistenceService.java:131)
at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:197)
at org.jbpm.svc.Services.close(Services.java:243)
at org.jbpm.JbpmContext.close(JbpmContext.java:133)
at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:194)
at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:61)
If 'repeat' is not set, the token is leaving the state as expected.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira