From 6e3f8ba06a77db35dd64e75ada1d4024c97abfa3 Mon Sep 17 00:00:00 2001 From: bryan31 Date: Mon, 20 Sep 2021 23:05:10 +0800 Subject: [PATCH] =?UTF-8?q?bug=20#I49EHH=20setIsEnd=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E7=9A=84=E4=B8=8D=E5=90=88=E7=90=86=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yomahub/liteflow/core/FlowExecutor.java | 5 ++++- .../liteflow/test/component/FlowExecutorTest.java | 12 ++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java index 0eddece0b..de0ab2582 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/FlowExecutor.java @@ -8,6 +8,7 @@ */ package com.yomahub.liteflow.core; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReUtil; @@ -297,13 +298,15 @@ public class FlowExecutor { return this.execute2Resp(chainId, param, slotClazz, null, false); } + private final ArrayList> notFailExceptionList = ListUtil.toList(ChainEndException.class); + public LiteflowResponse execute2Resp(String chainId, Object param, Class slotClazz, Integer slotIndex, boolean isInnerChain) { LiteflowResponse response = new LiteflowResponse<>(); T slot = doExecute(chainId, param, slotClazz, slotIndex, isInnerChain); - if (ObjectUtil.isNotNull(slot.getException())) { + if (ObjectUtil.isNotNull(slot.getException()) && !notFailExceptionList.contains(slot.getException().getClass())) { response.setSuccess(false); response.setMessage(slot.getException().getMessage()); response.setCause(slot.getException()); diff --git a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/component/FlowExecutorTest.java b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/component/FlowExecutorTest.java index 67fc8bbb9..5d983b5cc 100644 --- a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/component/FlowExecutorTest.java +++ b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/component/FlowExecutorTest.java @@ -63,19 +63,19 @@ public class FlowExecutorTest extends BaseTest { } //isEnd方法的功能点测试 - @Test(expected = ChainEndException.class) + @Test public void testIsEnd() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain4", 10); - Assert.assertFalse(response.isSuccess()); - ReflectionUtils.rethrowException(response.getCause()); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("d",response.getSlot().printStep()); } //setIsEnd方法的功能点测试 - @Test(expected = ChainEndException.class) + @Test public void testSetIsEnd() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain5", 10); - Assert.assertFalse(response.isSuccess()); - ReflectionUtils.rethrowException(response.getCause()); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("e",response.getSlot().printStep()); } //条件组件的功能点测试