Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
[CAM-6388] Workflows waiting on an intermediate signal catch event after an event based gateway cannot be triggered from REST API. Created: 11/Jul/16 Updated: 13/Jul/16 Resolved: 12/Jul/16 Status: Project: Component/s: Affects Version/s: Fix Version/s: Closed camunda BPM None 7.5.0 Type: Reporter: Resolution: Labels: Remaining Estimate: Time Spent: Original Estimate: Environment: Bug Report Arun Mohan Duplicate None Not Specified Attachments: Issue Links: None Priority: Assignee: Votes: L3 - Default Unassigned 0 Not Specified Not Specified Jboss wildfly 10.0.0. Final evtGtwyTest.bpmn TestProject.zip Related is related to CAM-4099 Using the Rest API, I can throw a BPM... Description Steps to reproduce. 1. Please deploy the attached bpmn xml file and start the workflow. 2. This flow creates a subscription with name "blessed" in the event subscription table. 3. Now i need to signal the flow from rest. So i tried using this rest API. Request POST http://server:port/ {camundarestcontext}/rest/execution/ { "signalEventSubscriptionName" : "blessed" } Response Got an execution id which i used for signalling as follows Open http://localhost:8080/{camundarestcontext} //rest/execution/ {executionid} signal. For this i got an exception as below. If i do not use event gateway then everything works fine. What should i do gateway? 10:19:16,265 WARNING [ExceptionHandler] (default task-24) org.camunda.bpm.engine.rest.exception.RestEx execution d9cbac60-4778-11e6-8ff2-8851fb701d15: ENGINE-02010 The activity with id 'evntGateway_1' does at org.camunda.bpm.engine.rest.sub.runtime.impl.ExecutionResourceImpl.signalExecution(ExecutionResourceI 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:497) at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:168) at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269) at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227) at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:158) at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:106) at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:153) at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:91) at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:541) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:523) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:125) at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java: at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) 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 com.motive.camunda.rest.security.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:91) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) at org.camunda.bpm.engine.rest.filter.CacheControlFilter.doFilter(CacheControlFilter.java:41) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) at com.motive.aat.AatFilter.doFilter(AatFilter.java:94) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) 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 at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextA at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAss at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthentication 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(AuthenticationConstraintHand at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidenti at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstr at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsH at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticat at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java: at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityCont at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler 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:284) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793) 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) Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-02010 The activity with id 'evntGatew at org.camunda.bpm.engine.impl.bpmn.behavior.BpmnBehaviorLogger.unsupportedSignalException(BpmnBeh at org.camunda.bpm.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.signal(FlowNodeActivityBehavior at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.signal(PvmExecutionImpl.java:694) at org.camunda.bpm.engine.impl.cmd.SignalCmd.execute(SignalCmd.java:63) at org.camunda.bpm.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24) at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor at org.camunda.bpm.engine.impl.interceptor.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:58 at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationC at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30) at org.camunda.bpm.engine.impl.RuntimeServiceImpl.signal(RuntimeServiceImpl.java:301) at org.camunda.bpm.engine.rest.sub.runtime.impl.ExecutionResourceImpl.signalExecution(ExecutionResourceI ... 59 more Comments Comment by Arun Mohan [ 11/Jul/16 ] Attaching a camunda testcase to proove the issue. There are comments in the testcase about the problem and an alternate way to fix it as well. Comment by Thorben Lindhauer [ 12/Jul/16 ] Hi Arun, RuntimeService#signal is not supposed to trigger BPMN signal events that are boundary events or follow an event based gateway. It can be used to continue execution of wait state activities, i.e. the activity that the execution currently waits in. In this case, this is the eventbased gateway and that cannot be signalled. As you write in your test case, RuntimeService#signalEventReceived is the correct Java API and that is not exposed in the REST API yet. This is a missing feature and not a bug, see ticket CAM-4099. Let us know if you would like to contribute this functionality. In the future, please post such things in the user forum (https://forum.camunda.org/) before raising bug reports, so that we can classify the problem before raising a ticket. Cheers, Thorben Generated at Fri May 12 13:16:12 CEST 2017 using JIRA 6.4.6#64021sha1:33e5b454af4594f54560ac233c30a6e00459507e.