According to the information you have exposed, I can state this: After you call ksession.signalEven(), the process continues its execution and reaches the Rule Task node. At this point, the rule is activated (check the output log to check this) and the process execution stops returning to the line after ksession.signalEvent(). At this point you need to tell the session to execute all activated rules: ksession.fireAllRules(). When fireAllRules() gets executed, the process execution continues and reaches the end node.