Hide Forgot
Description of problem: Running simulation for HR process int the process designer widget does not work. Honestly, IDK so much about how process simulation works, so could be possible that I'm doing some mistakes when trying to run the simulation. Anyway, I think the exception thrown should not appear. Version-Release number of selected component (if applicable): 6.0.0-SNAPSHOT, not tested in 6.1.1 yet. How reproducible: Steps to Reproduce: 1. Deploy kie-wb-webapp version 6.0.0 in a EAP installation. 2. Go to project authoring perspective 3. Select jbpm-playground repository 4. Open the hiring process (HR) definition with process designer. 5. Click on "run simulation" icon 6. Set number of instances: 2 7. Set interval: 1 8. Click on "Run simulation" button 9. An exception is thrown. Actual results: An exception is thrown: 21:17:01,555 ERROR [org.jbpm.designer.web.server.SimulationServlet] (http-localhost/127.0.0.1:8080-1) Error during simulation: org.jbpm.workflow.instance.WorkflowRuntimeException: [hiring:1 - HR Interview:2] -- Index: 0, Size: 0 at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:161) [jbpm-flow-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:337) [jbpm-flow-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:352) [jbpm-flow-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.simulation.impl.SimulationStartNodeInstance.internalTrigger(SimulationStartNodeInstance.java:32) [jbpm-simulation-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:155) [jbpm-flow-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:35) [jbpm-flow-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:222) [jbpm-flow-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:358) [jbpm-flow-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.process.instance.ProcessRuntimeImpl.startProcessInstance(ProcessRuntimeImpl.java:189) [jbpm-flow-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:171) [jbpm-flow-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:163) [jbpm-flow-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.drools.core.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1573) [drools-core-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.drools.core.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:361) [drools-core-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.simulation.impl.SimulateProcessPathCommand.execute(SimulateProcessPathCommand.java:44) [jbpm-simulation-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.simulation.impl.SimulateProcessPathCommand.execute(SimulateProcessPathCommand.java:13) [jbpm-simulation-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.drools.simulation.impl.Simulator$DefaultCommandExecutionHandler.execute(Simulator.java:188) [drools-simulator-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.drools.simulation.impl.Simulator.executeNextStep(Simulator.java:150) [drools-simulator-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.drools.simulation.impl.Simulator.run(Simulator.java:111) [drools-simulator-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.drools.simulation.fluent.simulation.impl.DefaultSimulationFluent.runSimulation(DefaultSimulationFluent.java:184) [drools-simulator-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.drools.simulation.fluent.simulation.impl.DefaultSimulationFluent.runSimulation(DefaultSimulationFluent.java:179) [drools-simulator-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.simulation.SimulationRunner.runSimulation(SimulationRunner.java:105) [jbpm-simulation-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.simulation.SimulationRunner.runSimulation(SimulationRunner.java:50) [jbpm-simulation-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.designer.web.server.SimulationServlet.doPost(SimulationServlet.java:173) [jbpm-designer-backend-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.jboss.solder.servlet.exception.CatchExceptionFilter.doFilter(CatchExceptionFilter.java:65) [solder-impl-3.2.1.Final.jar:3.2.1.Final] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.jboss.solder.servlet.event.ServletEventBridgeFilter.doFilter(ServletEventBridgeFilter.java:74) [solder-impl-3.2.1.Final.jar:3.2.1.Final] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.jbpm.designer.web.filter.impl.PluggableFilter.doFilter(PluggableFilter.java:70) [jbpm-designer-backend-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10] at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10] at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:408) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_40] Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:635) [rt.jar:1.7.0_40] at java.util.ArrayList.get(ArrayList.java:411) [rt.jar:1.7.0_40] at org.jbpm.simulation.impl.ht.AllocatedResources.allocate(AllocatedResources.java:34) [jbpm-simulation-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.simulation.impl.ht.Range.allocate(Range.java:38) [jbpm-simulation-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.simulation.impl.ht.RangeChain.allocateWork(RangeChain.java:22) [jbpm-simulation-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.simulation.impl.ht.StaffPoolImpl.allocate(StaffPoolImpl.java:115) [jbpm-simulation-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.simulation.impl.ht.StaffPoolImpl.allocate(StaffPoolImpl.java:121) [jbpm-simulation-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.simulation.impl.simulators.HumanTaskActivitySimulator.simulate(HumanTaskActivitySimulator.java:39) [jbpm-simulation-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.simulation.impl.SimulationNodeInstance.internalTrigger(SimulationNodeInstance.java:24) [jbpm-simulation-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:155) [jbpm-flow-6.0.0-SNAPSHOT.jar:6.0.0-SNAPSHOT] ... 50 more Expected results: Additional info:
the main issue with this is that there is no values given for simulation properties and thus the exception is thrown. I fixed the simulation engine to do not fail on such case but simply produce appropriate results which in case of empty simulation properties is empty results. droolsjbpm-integration master: https://github.com/droolsjbpm/droolsjbpm-integration/commit/d1bcdc59eaad4779558b1ad1ebe8530cc4915e8d currently only on master and waiting for all acks to be back ported to 6.0.x. If needed we can update process definition that comes from the jbpm-playground repo to have valid simulation properties out of the box to produce meaningful results.
backported to 6.0.x branch: https://github.com/droolsjbpm/droolsjbpm-integration/commit/6463d3e022ef7372f3e9f4f2af824fb73a9b3457
Verified on BPMS 6.0.0.ER5