[jboss-user] [JBoss jBPM] - Exception - uniqeue constraint
avivstav
do-not-reply at jboss.com
Tue May 15 07:07:02 EDT 2007
Hi
I run the following code:
| public Long startFlow(long cid,String problem, long sid) {
| Long processDefId = null;
| SupportRequest supportRequest = null;
| JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
| try {
|
| GraphSession graphSession = jbpmContext.getGraphSession();
|
| ProcessDefinition processDefinition =
| graphSession.findLatestProcessDefinition("Submits New Support Request");
|
| ProcessInstance processInstance =
| new ProcessInstance(processDefinition);
|
| processDefId = processDefinition.getId();
| ContextInstance contextInstance = processInstance.getContextInstance();
| contextInstance.setVariable("cid", cid);
| contextInstance.setVariable("problem", problem);
| contextInstance.setVariable("sid" , sid);
| contextInstance.setVariable("processDefId" , processDefId);
|
| log.debug("process definition Id for continuing the : "+processDefId);
|
| Token token = processInstance.getRootToken();
|
| token.signal();
|
| jbpmContext.save(processInstance);
|
| } finally {
| jbpmContext.close();
| return processDefId;
| }
| }
|
Adn I receive the following error when running the save() operation inside the method:
| 13:21:50,578 INFO [DefaultRemoter] Exec: supportRequestFlow.startSupportRequestCall()
| 13:21:50,671 WARN [ProxyWarnLog] Narrowing proxy to class org.jbpm.graph.node.StartState - this operation breaks ==
| 13:21:50,687 WARN [ProxyWarnLog] Narrowing proxy to class org.jbpm.graph.node.State - this operation breaks ==
| 13:21:50,890 WARN [JDBCExceptionReporter] SQL Error: 1, SQLState: 23000
| 13:21:50,890 ERROR [JDBCExceptionReporter] ORA-00001: unique constraint (ERAN_JBPM.SYS_C0041193) violated
|
| 13:21:50,890 WARN [JDBCExceptionReporter] SQL Error: 1, SQLState: 23000
| 13:21:50,890 ERROR [JDBCExceptionReporter] ORA-00001: unique constraint (ERAN_JBPM.SYS_C0041193) violated
|
| 13:21:50,890 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session
| org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
| at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:92)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:87)
| at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:218)
| at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2159)
| at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2595)
| at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
| 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:253)
| at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:211)
| at org.jbpm.svc.Services.close(Services.java:222)
| at org.jbpm.JbpmContext.close(JbpmContext.java:139)
| at com.supportspace.stargate.service.impl.jbpm.SupportRequestFlowImpl.startSupportRequestCall(SupportRequestFlowImpl.java:87)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34)
| at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:423)
| at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:426)
| at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:280)
| at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)
| at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
| at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:120)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:75)
| at net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:89)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at com.opensymphony.clickstream.ClickstreamFilter.doFilter(ClickstreamFilter.java:42)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
| at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
| at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
| at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
| at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
| at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
| at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
| at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
| at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
| at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
| at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
| at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
| at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
| at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
| at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
| at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
| at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
| at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
| at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
| at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:173)
| at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
| at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
| at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
| at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: java.sql.BatchUpdateException: ORA-00001: unique constraint (ERAN_JBPM.SYS_C0041193) violated
|
| at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
| at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10698)
| at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
| at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
| ... 84 more
| 13:21:50,890 ERROR [DbPersistenceService] hibernate commit failed
| org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
| at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:92)
| at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:87)
| at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:218)
| at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2159)
| at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2595)
| at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51)
|
I debug it and it seems the uniqeue constraint error I receives is due to the fact the process definition returns is already exists in DB.
I based the code on the example 3.2 from jboss site http://docs.jboss.com/jbpm/v3/userguide/tutorial.html
how the persistency works? why it creates new processDefinition entry each time?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4045748#4045748
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4045748
More information about the jboss-user
mailing list