jbossdemocentral / bpms-mortgage-demo

A BPM Suite demo displaying interaction from a BPM process with rules, web services, and human tasks to evaluate an application to buy a home.
16 stars 25 forks source link

Configure simulation parameters in process #23

Open DuncanDoyle opened 8 years ago

DuncanDoyle commented 8 years ago

The simulation parameters in the process have not been configured properly, hence simulation does not give proper results.

DuncanDoyle commented 7 years ago

After configuring the simulation parameters, we're still unable to run simulation on this process due to the following error:

The process may have unstructured loops where one instance of a loop is not finished before another is started. Simulation currently does not support such processes.

See https://issues.jboss.org/browse/RHBPMS-4006

So, we either need to change the process to allow for simulation, or we need to explain why simulation is not possible. Will still update the improved process definition in Git, so we at least have the simulation params fully pre-configured and process validation completest without errors.

DuncanDoyle commented 7 years ago

Additional problems with simulation:

When I'm trying to run a simulation it shows me an error 11:09:37,364 ERROR [org.jbpm.designer.web.server.SimulationServlet] (default task-37) Error during simulation: java.lang.RuntimeException: Unable to calculate paths of the process - max size (100) of paths exceeded

This is the test that I'm running:

unnamed

DuncanDoyle commented 7 years ago

Full stack trace:

14:56:58,914 ERROR [org.jbpm.designer.web.server.SimulationServlet] (default task-100) Error during simulation: java.lang.RuntimeException: Unable to calculate paths of the process - max size (100) of paths exceeded at org.jbpm.simulation.PathContextManager.checkSize(PathContextManager.java:231) at org.jbpm.simulation.PathContextManager.getContextFromStack(PathContextManager.java:52) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:41) at org.jbpm.simulation.handler.GatewayElementHandler.handleExclusiveGateway(GatewayElementHandler.java:68) at org.jbpm.simulation.handler.GatewayElementHandler.handle(GatewayElementHandler.java:41) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:54) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:59) at org.jbpm.simulation.handler.GatewayElementHandler.handleExclusiveGateway(GatewayElementHandler.java:68) at org.jbpm.simulation.handler.GatewayElementHandler.handle(GatewayElementHandler.java:41) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:54) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.ActivityElementHandler.handle(ActivityElementHandler.java:61) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:63) at org.jbpm.simulation.handler.GatewayElementHandler.handleExclusiveGateway(GatewayElementHandler.java:68) at org.jbpm.simulation.handler.GatewayElementHandler.handle(GatewayElementHandler.java:41) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:54) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.ActivityElementHandler.handle(ActivityElementHandler.java:61) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:63) at org.jbpm.simulation.handler.GatewayElementHandler.handleExclusiveGateway(GatewayElementHandler.java:68) at org.jbpm.simulation.handler.GatewayElementHandler.handle(GatewayElementHandler.java:41) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:54) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.ActivityElementHandler.handle(ActivityElementHandler.java:61) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:63) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.ActivityElementHandler.handle(ActivityElementHandler.java:61) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:63) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:59) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.ActivityElementHandler.handle(ActivityElementHandler.java:56) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:63) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:59) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.ActivityElementHandler.handle(ActivityElementHandler.java:61) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:63) at org.jbpm.simulation.handler.ActivityElementHandler.handleSeparatePaths(ActivityElementHandler.java:81) at org.jbpm.simulation.handler.ActivityElementHandler.handle(ActivityElementHandler.java:50) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:63) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:59) at org.jbpm.simulation.handler.GatewayElementHandler.handleExclusiveGateway(GatewayElementHandler.java:68) at org.jbpm.simulation.handler.GatewayElementHandler.handle(GatewayElementHandler.java:41) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:54) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.ActivityElementHandler.handle(ActivityElementHandler.java:61) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:63) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:59) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.ActivityElementHandler.handle(ActivityElementHandler.java:61) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:63) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.ActivityElementHandler.handle(ActivityElementHandler.java:61) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:63) at org.jbpm.simulation.handler.GatewayElementHandler.handleExclusiveGateway(GatewayElementHandler.java:68) at org.jbpm.simulation.handler.GatewayElementHandler.handle(GatewayElementHandler.java:41) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:54) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.ActivityElementHandler.handle(ActivityElementHandler.java:61) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:63) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:59) at org.jbpm.simulation.handler.DefaultElementHandler.handle(DefaultElementHandler.java:34) at org.jbpm.simulation.handler.MainElementHandler.handle(MainElementHandler.java:67) at org.jbpm.simulation.impl.BPMN2PathFinderImpl.findPaths(BPMN2PathFinderImpl.java:121) at org.jbpm.simulation.impl.BPMN2PathFinderImpl.findPaths(BPMN2PathFinderImpl.java:147) at org.jbpm.simulation.SimulationRunner.runSimulation(SimulationRunner.java:83) at org.jbpm.simulation.SimulationRunner.runSimulation(SimulationRunner.java:73) at org.jbpm.designer.web.server.SimulationServlet.doPost(SimulationServlet.java:253) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) at org.uberfire.ext.security.server.SecureHeadersFilter.doFilter(SecureHeadersFilter.java:69) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) at org.uberfire.ext.security.server.SecurityIntegrationFilter.doFilter(SecurityIntegrationFilter.java:57) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) at io.undertow.server.handlers.DisableCacheHandler.handleRequest(DisableCacheHandler.java:33) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51) at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56) at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:285) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:264) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:175) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:792) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

DuncanDoyle commented 7 years ago

After discussing with Maciej, the problem is that the process has unstructured loops (a loop that starts another loop without ending the current one). So we either: a) Need to change the process. b) Live with the fact that simulation doesn't work for this specific process.

Need to investigate how much effort it would be to adapt the process.