소스 검색

bug #IC4JGV PostProcessChainExecuteLifeCycle在有异常的情况下执行不到

everywhere.z 1 개월 전
부모
커밋
fb83210b83
1개의 변경된 파일6개의 추가작업 그리고 7개의 파일을 삭제
  1. 6 7
      liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/Chain.java

+ 6 - 7
liteflow-core/src/main/java/com/yomahub/liteflow/flow/element/Chain.java

@@ -127,13 +127,6 @@ public class Chain implements Executable{
 				condition.setCurrChainId(chainId);
 				condition.execute(slotIndex);
 			}
-
-			//如果有生命周期则执行相应生命周期实现
-			if (CollUtil.isNotEmpty(LifeCycleHolder.getPostProcessChainExecuteLifeCycleList())){
-				LifeCycleHolder.getPostProcessChainExecuteLifeCycleList().forEach(
-						postProcessChainExecuteLifeCycle -> postProcessChainExecuteLifeCycle.postProcessAfterChainExecute(chainId, slot)
-				);
-			}
 		}
 		catch (ChainEndException e) {
 			// 这里单独catch ChainEndException是因为ChainEndException是用户自己setIsEnd抛出的异常
@@ -150,6 +143,12 @@ public class Chain implements Executable{
 			}
 			throw e;
 		}finally {
+			//如果有生命周期则执行相应生命周期实现
+			if (CollUtil.isNotEmpty(LifeCycleHolder.getPostProcessChainExecuteLifeCycleList())){
+				LifeCycleHolder.getPostProcessChainExecuteLifeCycleList().forEach(
+						postProcessChainExecuteLifeCycle -> postProcessChainExecuteLifeCycle.postProcessAfterChainExecute(chainId, slot)
+				);
+			}
 			runtimeIdTL.remove();
 		}
 	}