Hi All,
I have a requirement according to which I need to add one more column to the JBPM_TIMER
table and update that value before executing the Timer.
I have updated the Timer.hbm.xml and Timer.java accordingly after making changes in the
database.
Below is the JUnit test which I am using to update the Timer object. However, I am getting
an AssertionFailure.
public void testUpdateThreadStatus() throws Exception
| {
| JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
| JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
| SchedulerSession schedulerSession = null;
| Session session = null;
| Timer timer = null;
| Long timerId = new Long(3919710);
|
| try
| {
| session = jbpmContext.getSession();
|
| schedulerSession = jbpmContext.getSchedulerSession();
| timer = (Timer)session.load(Timer.class, timerId);
| System.out.println("Timer object retrieved from Database : " +
timer.getName());
| if(timer.getThreadStatus() == 0)
| {
| System.out.println("Going to update the THREADSTATUS_ column for the Timer
" + timer.getId());
| timer.setThreadStatus(1);
| schedulerSession.saveTimer(timer);
| }
| }
| finally
| {
| if(jbpmContext != null)
| {
| jbpmContext.close();
| }
| }
| }
The error which I get is as given below:
DEBUG> org.hibernate.event.def.AbstractFlushingEventListener[main]: post flush
ERROR> org.hibernate.AssertionFailure[main]: an assertion failure occured (this may
indicate a bug in Hibernate, but is more likely due to unsafe use of the session)
org.hibernate.AssertionFailure: collection [org.jbpm.graph.def.Node.leavingTransitions]
was not processed by flush()
at org.hibernate.engine.CollectionEntry.postFlush(CollectionEntry.java:205)
at
org.hibernate.event.def.AbstractFlushingEventListener.postFlush(AbstractFlushingEventListener.java:332)
at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:28)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:161)
at org.jbpm.svc.Services.close(Services.java:211)
at org.jbpm.JbpmContext.close(JbpmContext.java:138)
at
com.ssc.faw.idf.junit.bpm.UpdateThreadStatusForSchedulerThread.testUpdateThreadStatus(UpdateThreadStatusForSchedulerThread.java:72)
My requirement is only to update the Timer object before actually executing the Timer.
Any help in this regard will be very useful for me.
Thanks in advance.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4096002#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...