mirror of
https://gitee.com/dromara/liteFlow.git
synced 2026-05-15 04:22:09 +08:00
[bug][I3CT49]连续的when标签,之间并不是完全并行的
注释:连续node when标签同groupid 或者默认进行合并 并且报错进行标志 向下传递 1.groupId -> group 2.errorResume -> default true
This commit is contained in:
@@ -17,7 +17,7 @@ import java.util.List;
|
||||
*/
|
||||
public class Condition {
|
||||
// 增加errorResume属性,以区分当when调用链调用失败时是否继续往下执行 默认true继续执行
|
||||
private boolean errorResume;
|
||||
private boolean errorResume = true;
|
||||
// 增加groupId属性,用于不同node进行同组合并
|
||||
private String groupId = LocalDefaultFlowConent.DEFAULT;
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ public abstract class XmlFlowParser {
|
||||
private void parseOneChain(Element e) throws Exception{
|
||||
String condArrayStr;
|
||||
String[] condArray;
|
||||
String groupId;
|
||||
String group;
|
||||
String errorResume;
|
||||
List<Executable> chainNodeList;
|
||||
List<Condition> conditionList;
|
||||
@@ -104,12 +104,12 @@ public abstract class XmlFlowParser {
|
||||
Element condE = it.next();
|
||||
condArrayStr = condE.attributeValue("value");
|
||||
errorResume = e.attributeValue("errorResume");
|
||||
groupId = e.attributeValue("groupId");
|
||||
group = e.attributeValue("group");
|
||||
if (StrUtil.isBlank(condArrayStr)) {
|
||||
continue;
|
||||
}
|
||||
if (StrUtil.isBlank(groupId)) {
|
||||
groupId = LocalDefaultFlowConent.DEFAULT;
|
||||
if (StrUtil.isBlank(group)) {
|
||||
group = LocalDefaultFlowConent.DEFAULT;
|
||||
}
|
||||
if (StrUtil.isBlank(errorResume)) {
|
||||
errorResume = Boolean.TRUE.toString();
|
||||
@@ -159,7 +159,7 @@ public abstract class XmlFlowParser {
|
||||
} else if (condE.getName().equals("when")) {
|
||||
if(conditionList.size() > 1 &&
|
||||
conditionList.get(conditionList.size() - 1) instanceof WhenCondition &&
|
||||
conditionList.get(conditionList.size() - 1).getGroupId().equals(groupId)){
|
||||
conditionList.get(conditionList.size() - 1).getGroupId().equals(group)){
|
||||
conditionList.get(conditionList.size() - 1).getNodeList().addAll(chainNodeList);
|
||||
}else{
|
||||
conditionList.add(new WhenCondition(chainNodeList, errorResume.equals(Boolean.TRUE.toString())));
|
||||
|
||||
Reference in New Issue
Block a user