jBPM 6.2 Inclusive Gateway没有等待所有传入的序列流(bug?)

时间:2016-05-11 21:00:03

标签: jbpm bpmn

我目前遇到jBPM 6.2中的情况,其中包容性网关不等待所有序列流完成。在其中一个序列流到达包含网关后,工作流程超过了包含网关。

这怎么可能?

此外,源代码中的位置是否包含网关逻辑,用于检查是否在工作流程中继续进行?

更新:2016年5月13日:

深入研究类JoinInstanece.javahttps://github.com/droolsjbpm/jbpm/blob/738d191d338dab3e8baceeaf6fe31556b81fe07f/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/JoinInstance.java#L163)的jBPM源代码,表明在分裂连接包含或网关模式中,jBPM引擎尝试查找所有"活动& #34; " can"通往join网关。但是,只要在xor网关的路径中存在2个或更多join个不同的网关,jBPM引擎就无法到达join网关,因此得出的结论是没有& #34;有源"它的路径。

更具体地说,这些代码行可能会导致问题:

JoinInstance.java

if (currentNode instanceof Split && ((Split) currentNode).getType() == Split.TYPE_XOR) {
    if (vistedNodes.contains(startAt.getId())) {
        return false;
    }

如果搜索遇到另一个" Split"节点,然后visitedNodes将包含startAt的ID。

也许应该是这样的:

if (vistedNodes.contains(startAt.getId()) && currentNode.getId() == startAt.getId()) {
     return false;
}

0 个答案:

没有答案