Bug 1028597

Summary: Run simulation not working for HR process
Product: [Retired] JBoss BPMS Platform 6 Reporter: Roger Martínez <romartin>
Component: jBPM DesignerAssignee: Maciej Swiderski <mswiders>
Status: CLOSED CURRENTRELEASE QA Contact: Tomas Livora <tlivora>
Severity: high Docs Contact:
Priority: high    
Version: 6.0.0CC: kverlaen, rrajasek
Target Milestone: ER5   
Target Release: 6.0.0   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-08-06 20:08:59 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Roger Martínez 2013-11-08 20:21:22 UTC
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:

Comment 2 Maciej Swiderski 2013-11-12 13:03:56 UTC
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.

Comment 4 Tomas Livora 2013-12-02 14:46:18 UTC
Verified on BPMS 6.0.0.ER5