From fa49d5f03c1f5649b58d94a1445eaced650e5180 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Tue, 3 Nov 2020 11:42:27 +0800 Subject: [PATCH] bugfix: fix compatibility issues with 'seata-all-1.4.0' --- .../feign/hystrix/SeataHystrixConcurrencyStrategy.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/feign/hystrix/SeataHystrixConcurrencyStrategy.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/feign/hystrix/SeataHystrixConcurrencyStrategy.java index 2aa507bd..d0a1528b 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/feign/hystrix/SeataHystrixConcurrencyStrategy.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/feign/hystrix/SeataHystrixConcurrencyStrategy.java @@ -36,6 +36,7 @@ import io.seata.core.context.RootContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.util.StringUtils; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; @@ -156,11 +157,15 @@ public class SeataHystrixConcurrencyStrategy extends HystrixConcurrencyStrategy public K call() throws Exception { try { RequestContextHolder.setRequestAttributes(requestAttributes); - RootContext.bind(xid); + if (!StringUtils.isEmpty(xid)) { + RootContext.bind(xid); + } return actual.call(); } finally { - RootContext.unbind(); + if (!StringUtils.isEmpty(xid)) { + RootContext.unbind(); + } RequestContextHolder.resetRequestAttributes(); } }