cancel
Showing results for 
Search instead for 
Did you mean: 

How to delete a process instance for a invalid XML?

edsonrichter
Confirmed Champ
Confirmed Champ
I'm currently facing the following issue:
1) My old deployment uses a (now) invalid method signature
2) Whenever I try to delete de old active instances, I get the following stack trace:


org.activiti.engine.impl.javax.el.ELException: Parameters for function 'mylib:myfunc' do not match
org.activiti.engine.impl.javax.el.ELException: Parameters for function 'mylib:myfunc' do not match
   at org.activiti.engine.impl.juel.Tree.bind(Tree.java:130)
   at org.activiti.engine.impl.juel.TreeValueExpression.<init>(TreeValueExpression.java:65)
   at org.activiti.engine.impl.juel.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:428)
   at org.activiti.engine.impl.juel.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:73)
   at org.activiti.engine.impl.el.ExpressionManager.createExpression(ExpressionManager.java:79)
   at org.activiti.engine.impl.bpmn.parser.factory.DefaultActivityBehaviorFactory.createServiceTaskExpressionActivityBehavior(DefaultActivityBehaviorFactory.java:157)
   at org.activiti.engine.impl.bpmn.parser.handler.ServiceTaskParseHandler.executeParse(ServiceTaskParseHandler.java:76)
   at org.activiti.engine.impl.bpmn.parser.handler.ServiceTaskParseHandler.executeParse(ServiceTaskParseHandler.java:32)
   at org.activiti.engine.impl.bpmn.parser.handler.AbstractBpmnParseHandler.parse(AbstractBpmnParseHandler.java:81)
   at org.activiti.engine.impl.bpmn.parser.handler.AbstractFlowNodeBpmnParseHandler.parse(AbstractFlowNodeBpmnParseHandler.java:27)
   at org.activiti.engine.impl.bpmn.parser.handler.AbstractActivityBpmnParseHandler.parse(AbstractActivityBpmnParseHandler.java:36)
   at org.activiti.engine.impl.bpmn.parser.BpmnParseHandlers.parseElement(BpmnParseHandlers.java:79)
   at org.activiti.engine.impl.bpmn.parser.BpmnParse.processFlowElements(BpmnParse.java:433)
   at org.activiti.engine.impl.bpmn.parser.handler.ProcessParseHandler.transformProcess(ProcessParseHandler.java:88)
   at org.activiti.engine.impl.bpmn.parser.handler.ProcessParseHandler.executeParse(ProcessParseHandler.java:49)
   at org.activiti.engine.impl.bpmn.parser.handler.ProcessParseHandler.executeParse(ProcessParseHandler.java:35)
   at org.activiti.engine.impl.bpmn.parser.handler.AbstractBpmnParseHandler.parse(AbstractBpmnParseHandler.java:81)
   at org.activiti.engine.impl.bpmn.parser.BpmnParseHandlers.parseElement(BpmnParseHandlers.java:79)
   at org.activiti.engine.impl.bpmn.parser.BpmnParse.transformProcessDefinitions(BpmnParse.java:400)
   at org.activiti.engine.impl.bpmn.parser.BpmnParse.execute(BpmnParse.java:233)
   at org.activiti.engine.impl.bpmn.deployer.BpmnDeployer.deploy(BpmnDeployer.java:136)
   at org.activiti.engine.impl.persistence.deploy.DeploymentManager.deploy(DeploymentManager.java:58)
   at org.activiti.engine.impl.persistence.deploy.DeploymentManager.resolveProcessDefinition(DeploymentManager.java:185)
   at org.activiti.engine.impl.persistence.deploy.DeploymentManager.findDeployedProcessDefinitionById(DeploymentManager.java:77)
   at org.activiti.engine.impl.persistence.entity.TaskEntity.getTaskDefinition(TaskEntity.java:798)
   at org.activiti.engine.impl.persistence.entity.TaskEntity.fireEvent(TaskEntity.java:728)
   at org.activiti.engine.impl.persistence.entity.TaskEntityManager.deleteTask(TaskEntityManager.java:69)
   at org.activiti.engine.impl.persistence.entity.TaskEntityManager.deleteTasksByProcessInstanceId(TaskEntityManager.java:63)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntityManager.deleteProcessInstanceCascade(ExecutionEntityManager.java:84)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntityManager.deleteProcessInstance(ExecutionEntityManager.java:70)
   at org.activiti.engine.impl.persistence.entity.ExecutionEntityManager.deleteProcessInstance(ExecutionEntityManager.java:60)
   at org.activiti.engine.impl.cmd.DeleteProcessInstanceCmd.execute(DeleteProcessInstanceCmd.java:42)
   at org.activiti.engine.impl.cmd.DeleteProcessInstanceCmd.execute(DeleteProcessInstanceCmd.java:24)
   at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:24)
   at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:57)
   at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31)
   at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40)
   at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:35)
   at org.activiti.engine.impl.RuntimeServiceImpl.deleteProcessInstance(RuntimeServiceImpl.java:122)
   at mypackage.WfBroker.cancelaProcessoAtivo(WfBroker.java:1372)
   at mypackage.WfBroker.cancelar(WfBroker.java:1473)
   at mypackage.WfServiceImpl.cancela(WfServiceImpl.java:403)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:498)
   at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561)
   at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:265)
   at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:305)
   at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
   at br.com.simfreteV1.web.SecurityFilter.doFilter(SecurityFilter.java:117)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
   at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
   at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
   at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
   at java.lang.Thread.run(Thread.java:745)


Point is, how can I delete instances even if the deployment is not valid anymore?

Thanks,

Edson
2 REPLIES 2

seema
Champ in-the-making
Champ in-the-making
Login in activiti-explorer with your admin user. Goto "process" tab. There is a tab named "My Instances". There is a list of all active process instances. Click on particular process instance which you want to delete. In right hand side, you find "Delete" button. From here you can delete your process instance.

I forgot to mention: delete using API.
Nevertheless, I've looked the code, and it will fail with activity-explorer as well.
Seems that I can't delete a process instance with invalid XML because as part of the delete call, it will try to notify the tasks of the deletion - and this is causing the problem. Since XML is invalid, system can't load the XML to know which tasks need to notify.
So, I think the solution is to delete from database - probably using the Persistence API.

Is that the only option?

Regards,
Edson