--------------------------------------------------------------------------------
Hi
i created an instance of token and trying to signal the process with the newly
created token here i associated the newly created token with the process
instance. here im not using the root token for signalling. so im trying to save
the data in the tables.when i tried to get the root token id it gave as 408 and
the token id of the newly created token as 0. is this procedure correct. can ny
body help me out
here is the code
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
public class CreateDuplicateToken {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JbpmConfiguration jbpmConfiguration = null;
JbpmContext jbpmContext = null;
try {
jbpmConfiguration = JbpmConfiguration.parseInputStream(new
FileInputStream("src/config.files/jbpm.cfg.xml"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
jbpmContext = jbpmConfiguration.createJbpmContext();
System.out.println("Create Duplicate Token:");
System.out.print("Enter the ProcessInstance ID: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
long processInstanceID = 0 ;
try {
processInstanceID = Long.parseLong(br.readLine());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ProcessInstance processInstance =
jbpmContext.loadProcessInstanceForUpdate(processInstanceID);
Token rootToken = processInstance.getRootToken();
Token duplicateToken = new Token();
duplicateToken.setProcessInstance(procesInstance);
duplicateToken.setNode(rootToken.getNode());
System.out.println("Root TokenID: "+rootToken.getId());
System.out.println("Duplicate TokenID: "+duplicateToken.getId());
System.out.println("ProcessInstance of Duplicate:
"+duplicateToken.getProcessInstance().getId());
jbpmContext.save(duplicateToken);
duplicateToken.signal();
jbpmContext.save(duplicateToken);
jbpmContext.close();
}
}
here is the exception
org.jbpm.persistence.JbpmPersistenceException: couldn't commit hibernate
session
at
org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:171)
at org.jbpm.svc.Services.close(Services.java:211)
at org.jbpm.JbpmContext.close(JbpmContext.java:141)
at
com.westpac.nzlo.tempjbpm.CreateDuplicateToken.main(CreateDuplicateToken.java:66)
Caused by: org.hibernate.TransientObjectException: object references an unsaved
transient instance - save the transient instance before flushing:
org.jbpm.graph.exe.Token
at
org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216)
at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:221)
at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:476)
at
org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:2803)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:467)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:190)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:113)
at
org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:195)
at
org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:980)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:353)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at
org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:161)
... 3 more
18:06:33,500 [main] ERROR Services : problem closing service 'persistence'
org.jbpm.persistence.JbpmPersistenceException: couldn't commit hibernate
session
at
org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:171)
at org.jbpm.svc.Services.close(Services.java:211)
at org.jbpm.JbpmContext.close(JbpmContext.java:141)
at
com.westpac.nzlo.tempjbpm.CreateDuplicateToken.main(CreateDuplicateToken.java:66)
Caused by: org.hibernate.TransientObjectException: object references an unsaved
transient instance - save the transient instance before flushing:
org.jbpm.graph.exe.Token
at
org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216)
at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:221)
at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:476)
at
org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:2803)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:467)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:190)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:113)
at
org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:195)
at
org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:980)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:353)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at
org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:161)
... 3 more
org.jbpm.JbpmException: problem closing services
{persistence=org.jbpm.persistence.JbpmPersistenceException: couldn't commit
hibernate session}
at org.jbpm.svc.Services.close(Services.java:223)
at org.jbpm.JbpmContext.close(JbpmContext.java:141)
at
com.westpac.nzlo.tempjbpm.CreateDuplicateToken.main(CreateDuplicateToken.java:66)
Caused by: org.jbpm.persistence.JbpmPersistenceException: couldn't commit
hibernate session
at
org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:171)
at org.jbpm.svc.Services.close(Services.java:211)
... 2 more
Caused by: org.hibernate.TransientObjectException: object references an unsaved
transient instance - save the transient instance before flushing:
org.jbpm.graph.exe.Token
at
org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216)
at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:221)
at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:476)
at
org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:2803)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:467)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:190)
at
org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:113)
at
org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:195)
at
org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:980)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:353)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at
org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:161)
... 3 more
thnx
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3963467#3963467
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3963467
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user