[jboss-user] [JBoss jBPM] - Re: What should happen if exception occurs in Action?

clandestino_bgd do-not-reply at jboss.com
Thu Feb 22 09:57:16 EST 2007


Just to add that I am using:
jbpm-3.1.3 starters kit.
The previosly reported exception after trying to delete process instance after FK constrain exception is thrown:


  | [executive] ERROR [http-8180-Processor25] PARSER.reportError(33) | <AST>:0:0: unexpected end of subtree
  | org.hibernate.hql.ast.QuerySyntaxException: unexpected end of subtree [
  | 
  |       select pl
  |       from org.jbpm.logging.log.ProcessLog as pl
  |       where pl.token in ()
  | 
  |   ]
  | 

is actually my failure, because I did not merge well the "if" condition added in 3.1.3:

  | // delete the logs for all the process instance's tokens
  |       if ((tokens!=null)
  |            && (!tokens.isEmpty())
  |          ){
  | 
After that I have "only one" exception FK constraint:


  | Start deleting process instance
  | Deleted process instance
  | 14:29:16,781 [executive] WARN JDBCExceptionReporter.logExceptions(71) | SQL Error: 1451, SQLState: 23000
  | 14:29:16,781 [executive] ERROR JDBCExceptionReporter.logExceptions(72) | Cannot delete or update a parent row: a foreign key constraint fail
  | s (`executive_db/jbpm_variableinstance`, CONSTRAINT `FK_VARINST_PRCINST` FOREIGN KEY (`PROCESSINSTANCE_`) REFERENCES `jbpm_processinstance`
  | (`ID_`))
  | 14:29:16,781 [executive] ERROR AbstractFlushingEventListener.performExecutions(301) | Could not synchronize database state with session
  | org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbpm.graph.exe.ProcessInstance#3]
  |         at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
  |         at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
  |         at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2476)
  |         at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2632)
  |         at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:73)
  |         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:144)
  |         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.springframework.orm.hibernate3.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:130)
  |         at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:
  | 48)
  |         at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager
  | .java:707)
  |         at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:
  | 523)
  |         at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:510)
  |         at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.jav
  | a:310)
  |         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
  |         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
  |         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
  |         at $Proxy6.cancelProcessInstance(Unknown Source)
  |         at gleam.executive.webapp.action.ProcessInstanceAction.cancel(ProcessInstanceAction.java:141)
  |         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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
  |         at gleam.executive.webapp.action.BaseAction.execute(BaseAction.java:229)
  |         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
  |         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
  |         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
  |         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  |         at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
  |         at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  |         at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:375)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  |         at gleam.executive.webapp.filter.GZIPFilter.doFilterInternal(GZIPFilter.java:42)
  |         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.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  |         at gleam.executive.webapp.filter.LocaleFilter.doFilterInternal(LocaleFilter.java:59)
  |         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 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.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
  |         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.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:108)
  |         at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  |         at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:193)
  |         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.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
  |         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.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
  |         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
  |         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
  |         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
  |         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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
  |         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
  |         at java.lang.Thread.run(Thread.java:595)
  | 

TIA
Milan

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4020603#4020603

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4020603



More information about the jboss-user mailing list