Use jbpm4.0 i have test a simple process give me mysql error !! processDefine file
| <?xml version="1.0" encoding="UTF-8"?> | | <process name="normal" xmlns="http://jbpm.org/4.0/jpdl"> | <start g="5,120,48,48" name="start1"> | <transition g="-53,-17" name="to task1" to="task1"/> | </start> | <end g="729,248,48,48" name="end1"/> | <task assignee="${owner}" g="87,118,92,52" name="task1"> | | <transition g="-53,-17" name="to fork1" to="fork1"/> | </task> | <task assignee="${owner}" g="324,140,92,52" name="task2"> | <transition name="to join1" to="join1" g="-53,-17"/> | </task> | <fork g="198,223,48,48" name="fork1"> | <transition g="-53,-17" name="to task3" to="task3"/> | <transition g="-53,-17" name="to task2" to="task2"/> | </fork> | <task assignee="${owner}" g="338,258,92,52" name="task3"> | <transition name="to join1" to="join1" g="-53,-17"/> | </task> | <task name="task5" g="579,183,92,52" assignee="${owner}"> | <transition name="to end1" to="end1" g="-47,-17"/> | </task> | <join name="join1" g="517,237,48,48"> | <transition name="to task5" to="task5" g="-30,4"/> | </join> | </process> mycontroller | package org.jackysoft.bpm.controller; | | import java.util.HashMap; | import java.util.List; | import java.util.Map; | | import javax.annotation.Resource; | import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletResponse; | | import org.jbpm.api.ExecutionService; | import org.jbpm.api.HistoryService; | import org.jbpm.api.IdentityService; | import org.jbpm.api.ManagementService; | import org.jbpm.api.ProcessEngine; | import org.jbpm.api.RepositoryService; | import org.jbpm.api.TaskService; | import org.jbpm.api.identity.User; | import org.jbpm.api.task.Task; | import org.springframework.stereotype.Controller; | import org.springframework.web.bind.annotation.RequestMapping; | import org.springframework.web.bind.annotation.RequestParam; | import org.springframework.web.servlet.ModelAndView; | | | @Controller | @RequestMapping("/work.htm") | public class ProcessWork extends AbstractController{ | @Resource | ProcessEngine processEngine; | @Resource | ManagementService managementService; | @Resource | ExecutionService executionService; | @Resource | RepositoryService repositoryService; | @Resource | HistoryService historyService; | @Resource | TaskService taskService; | @Resource | IdentityService identityService; | | @RequestMapping(params = "method=start") | public ModelAndView start( | @RequestParam("pid")String pid, | HttpServletRequest request, | HttpServletResponse arg1) throws Exception { | Map<String,Object> vars =new HashMap<String,Object>(); | vars.put("owner", "john"); | executionService.startProcessInstanceById(pid, vars); | return getMyTasks(request); | } | | @RequestMapping(params = "method=dotask") | public ModelAndView doTask(@RequestParam("tid")String tid | ,HttpServletRequest request){ | taskService.completeTask(tid); | return getMyTasks(request); | } | | | ModelAndView getMyTasks(HttpServletRequest request){ | ModelAndView mv= new ModelAndView("/mywork.jsp"); | User user = identityService.findUserById("john"); | List<Task> mytasks = taskService.findPersonalTasks(user.getId()); | request.setAttribute("mytasks", mytasks); | return mv; | } | } when the process run in task node named task5 ,that 's mean next is end node my server throws flowwing stacks | Hibernate: | /* delete one-to-many org.jbpm.pvm.internal.model.ExecutionImpl.variables */ update | JBPM4_VARIABLE | set | EXECUTION_=null, | KEY_=null | where | EXECUTION_=? | Hibernate: | /* delete org.jbpm.pvm.internal.task.TaskImpl */ delete | from | JBPM4_TASK | where | DBID_=? | and DBVERSION_=? | Hibernate: | /* delete org.jbpm.pvm.internal.type.variable.StringVariable */ delete | from | JBPM4_VARIABLE | where | DBID_=? | and DBVERSION_=? | Hibernate: | /* delete org.jbpm.pvm.internal.model.ExecutionImpl */ delete | from | JBPM4_EXECUTION | where | DBID_=? | and DBVERSION_=? | [Line:100]: SQL Error: 1451, SQLState: 23000 -[org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:100)]-2009-07-26 14:57:20,468 | [Line:101]: Cannot delete or update a parent row: a foreign key constraint fails (`jbpm`.`jbpm4_execution`, CONSTRAINT `FK_EXEC_INSTANCE` FOREIGN KEY (`INSTANCE_`) REFERENCES `jbpm4_execution` (`DBID_`)) -[org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:101)]-2009-07-26 14:57:20,468 | [Line:324]: Could not synchronize database state with session -[org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:324)]-2009-07-26 14:57:20,468 | org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#1] | at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94) | at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) | at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2569) | at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2725) | at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:97) | at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279) | at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263) | at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172) | at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) | at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50) | at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027) | at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365) | at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137) | at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:655) | at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732) | at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701) | at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) | at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:79) | at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:54) | at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55) | at org.jbpm.pvm.internal.svc.TaskServiceImpl.completeTask(TaskServiceImpl.java:91) | at org.jbpm.pvm.internal.svc.TaskServiceImpl.completeTask(TaskServiceImpl.java:87) | at org.jackysoft.bpm.controller.ProcessWork.doTask(ProcessWork.java:58) | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) | at java.lang.reflect.Method.invoke(Unknown Source) | at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:421) | at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:136) | at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:326) | at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:313) | at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875) | at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807) | at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) | at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) | 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.StandardWrapperValve.invoke(StandardWrapperValve.java:233) | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) | at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) | at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) | at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) | at java.lang.Thread.run(Unknown Source) | Caused by: com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`jbpm`.`jbpm4_execution`, CONSTRAINT `FK_EXEC_INSTANCE` FOREIGN KEY (`INSTANCE_`) REFERENCES `jbpm4_execution` (`DBID_`)) | at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931) | at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870) | at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573) | at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1169) | at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:693) | at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1404) | at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1318) | at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1303) | at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2551) | ... 46 more | 2009-7-26 14:57:20 org.apache.catalina.core.StandardWrapperValve invoke | 严é: Servlet.service() for servlet springapp threw exception | com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`jbpm`.`jbpm4_execution`, CONSTRAINT `FK_EXEC_INSTANCE` FOREIGN KEY (`INSTANCE_`) REFERENCES `jbpm4_execution` (`DBID_`)) | at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931) | at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870) | at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573) | at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1169) | at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:693) | at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1404) | at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1318) | at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1303) | at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2551) | at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2725) | at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:97) | at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279) | at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263) | at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172) | at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) | at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50) | at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027) | at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365) | at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137) | at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:655) | at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732) | at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701) | at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) | at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:79) | at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:54) | at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55) | at org.jbpm.pvm.internal.svc.TaskServiceImpl.completeTask(TaskServiceImpl.java:91) | at org.jbpm.pvm.internal.svc.TaskServiceImpl.completeTask(TaskServiceImpl.java:87) | at org.jackysoft.bpm.controller.ProcessWork.doTask(ProcessWork.java:58) | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) | at java.lang.reflect.Method.invoke(Unknown Source) | at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:421) | at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:136) | at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:326) | at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:313) | at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875) | at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807) | at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) | at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) | 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.StandardWrapperValve.invoke(StandardWrapperValve.java:233) | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) | at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) | at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) | at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) | at java.lang.Thread.run(Unknown Source) i have test more than three process ,while process want to end node ,my server will give me these stacks [my env] anonymous wrote : | tc6 jdk1.6 mysql 5.1 spring2.5+hibernate3.3.1 | View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4246030#4246030 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4246030 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user