org.jbpm.JbpmException: couldn't get task instances by token '22842140'
风来66 2015-04-16 10:04:33 请大家帮忙看一下这个异常是大概是什么问题导致的,是jbpm流程执行时偶尔会出现但也是每天都会报出来的异常,
下面是出现异常的代码块:
333 String processInstanceId = request.getParameter("processInstanceId");
334 ProcessInstance processInstance = jbpmContext.getProcessInstance(Long.parseLong(processInstanceId));
335 List tasks = jbpmContext.getTaskMgmtSession().findTaskInstancesByToken(processInstance.getRootToken().getId());
336 if (tasks == null) {
337 forward(request, response, endPage);
338 return;
339 }
340 List myTasks = new ArrayList();
341
342 for (int i = 0; i < tasks.size(); i++) {
343 TaskInstance taskInstance = (TaskInstance)tasks.get(i);
344 if (isTaskActor(taskInstance, userid)) {
345 myTasks.add(taskInstance);
346 }
347 }
这是控制台输出的异常:
16:49:34,610 INFO [STDOUT] Hibernate: update JBPM_TASKINSTANCE set VERSION_=?, NAME_=?, DESCRIPTION_=?, ACTORID_=?, CREATE_=?, START_=?, END_=?, DUEDATE_=?, PRIORITY_=?, ISCANCELLED_=?, ISSUSPENDED_=?, ISOPEN_=?, ISSIGNALLING_=?, ISBLOCKING_=?, TASK_=?, TOKEN_=?, PROCINST_=?, SWIMLANINSTANCE_=?, TASKMGMTINSTANCE_=? where ID_=? and VERSION_=?
16:49:35,198 ERROR [[WFControlServlet]] Servlet.service() for servlet WFControlServlet threw exception
org.jbpm.JbpmException: couldn't get task instances by token '22842140'
at org.jbpm.db.TaskMgmtSession.findTaskInstancesByToken(TaskMgmtSession.java:142)
at com.futuresoft.monitor.workflow.servlets.WFControlServlet.perform(WFControlServlet.java:342)
at com.futuresoft.monitor.platform.MyBaseServlet.doPost(MyBaseServlet.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
at com.futuresoft.monitor.platform.MyBaseServlet.forward(MyBaseServlet.java:129)
at com.futuresoft.monitor.workflow.servlets.WFGainAlarmInfoServlet.perform(WFGainAlarmInfoServlet.java:276)
at com.futuresoft.monitor.platform.MyBaseServlet.doPost(MyBaseServlet.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.futuresoft.monitor.workflow.filters.WorkFlowFilter.doFilter(WorkFlowFilter.java:26)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.futuresoft.monitor.platform.dbutil.IframeNoSessionFilter.doFilter(IframeNoSessionFilter.java:49)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.futuresoft.monitor.platform.dbutil.CharsetFilter.doFilter(CharsetFilter.java:36)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at org.jboss.web.tomcat.service.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:97)
at org.jboss.web.tomcat.service.session.JvmRouteValve.invoke(JvmRouteValve.java:84)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.taskmgmt.exe.TaskInstance#22842142]
at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1765)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2407)
at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2307)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2607)
at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92)
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:140)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:41)
at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.jbpm.db.TaskMgmtSession.findTaskInstancesByToken(TaskMgmtSession.java:138)
... 44 more
16:49:35,206 INFO [STDOUT] Hibernate: update JBPM_TASKINSTANCE set VERSION_=?, NAME_=?, DESCRIPTION_=?, ACTORID_=?, CREATE_=?, START_=?, END_=?, DUEDATE_=?, PRIORITY_=?, ISCANCELLED_=?, ISSUSPENDED_=?, ISOPEN_=?, ISSIGNALLING_=?, ISBLOCKING_=?, TASK_=?, TOKEN_=?, PROCINST_=?, SWIMLANINSTANCE_=?, TASKMGMTINSTANCE_=? where ID_=? and VERSION_=?
16:49:35,209 ERROR [[wfgainalarminfoservlet]] Servlet.service() for servlet wfgainalarminfoservlet threw exception
org.jbpm.persistence.JbpmPersistenceException: hibernate commit failed
at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:223)
at org.jbpm.svc.Services.close(Services.java:223)
at org.jbpm.JbpmContext.close(JbpmContext.java:139)
at com.futuresoft.monitor.workflow.filters.WorkFlowFilter.doFilter(WorkFlowFilter.java:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.futuresoft.monitor.platform.dbutil.IframeNoSessionFilter.doFilter(IframeNoSessionFilter.java:49)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.futuresoft.monitor.platform.dbutil.CharsetFilter.doFilter(CharsetFilter.java:36)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at org.jboss.web.tomcat.service.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:97)
at org.jboss.web.tomcat.service.session.JvmRouteValve.invoke(JvmRouteValve.java:84)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.taskmgmt.exe.TaskInstance#22842142]