Sfoglia il codice sorgente

bug #IB7EQJ SWITCH后的target如果加了maxWaitMilliseconds导致选不到节点的问题

everywhere.z 6 mesi fa
parent
commit
6cf11c5b24

+ 2 - 0
liteflow-core/src/main/java/com/yomahub/liteflow/builder/el/operator/MaxWaitTimeOperator.java

@@ -65,6 +65,8 @@ public abstract class MaxWaitTimeOperator extends BaseOperator<Condition> {
         timeoutCondition.addExecutable(executable);
         timeoutCondition.setMaxWaitTime(maxWaitTime);
         timeoutCondition.setMaxWaitTimeUnit(getMaxWaitTimeUnit());
+        timeoutCondition.setId(executable.getId());
+        timeoutCondition.setTag(executable.getTag());
         return timeoutCondition;
     }
 

+ 5 - 0
liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/maxWaitSeconds/MaxWaitSecondsELSpringbootTest.java

@@ -111,6 +111,11 @@ public class MaxWaitSecondsELSpringbootTest extends BaseTest {
         assertNotTimeout("switch2");
     }
 
+    @Test
+    public void testSwitch3() {
+        assertNotTimeout("switch3");
+    }
+
     // 测试 IF 的超时情况
     @Test
     public void testIf1() {

+ 5 - 0
liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/maxWaitSeconds/flow.el.xml

@@ -62,6 +62,11 @@
         SWITCH(s).TO(a, b).maxWaitSeconds(3);
     </chain>
 
+    <chain name="switch3">
+        <!-- 不超时 -->
+        SWITCH(s).TO(a.maxWaitSeconds(3), b.maxWaitSeconds(2));
+    </chain>
+
     <!-- 条件编排测试 -->
     <!-- f 返回 true -->
     <chain name="if1">