bug #IBVGGT 13版本groovy脚本中使用_meta.cmp.setIsEnd(true)结束流程不生效

This commit is contained in:
everywhere.z
2025-03-26 00:02:03 +08:00
parent 9e9d1e28b2
commit 3083e89cd7

View File

@@ -1,5 +1,6 @@
package com.yomahub.liteflow.core; package com.yomahub.liteflow.core;
import com.yomahub.liteflow.enums.ScriptTypeEnum;
import com.yomahub.liteflow.log.LFLog; import com.yomahub.liteflow.log.LFLog;
import com.yomahub.liteflow.log.LFLoggerManager; import com.yomahub.liteflow.log.LFLoggerManager;
import com.yomahub.liteflow.script.ScriptExecuteWrap; import com.yomahub.liteflow.script.ScriptExecuteWrap;
@@ -45,6 +46,11 @@ public class ScriptCommonComponent extends NodeComponent implements ScriptCompon
@Override @Override
public boolean isEnd() { public boolean isEnd() {
//因为如果在scriptExecutor去执行cmp的super.isEnd()方法,会引起无限循环导致栈溢出
//这里没有更好的办法,只有硬代码判断下了
if (!this.getRefNode().getLanguage().equals(ScriptTypeEnum.JAVA.getDisplayName())){
return super.isEnd();
}
ScriptExecuteWrap wrap = this.buildWrap(this); ScriptExecuteWrap wrap = this.buildWrap(this);
return scriptExecutor.executeIsEnd(wrap); return scriptExecutor.executeIsEnd(wrap);
} }