From 6ccac03e85981601d024ec76cfc274d21ab5c086 Mon Sep 17 00:00:00 2001 From: Haotian Zhang <928016560@qq.com> Date: Fri, 24 Feb 2023 18:02:44 +0800 Subject: [PATCH] fix:fix the error capture of rate limit exception. --- CHANGELOG.md | 1 + .../example/service/callee/BusinessController.java | 6 ++---- .../resttemplate/EnhancedRestTemplateReporter.java | 4 ++++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d63962f38..42f50a7a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,3 +4,4 @@ - [docs:Add code coverage blocking.](https://github.com/Tencent/spring-cloud-tencent/pull/836) - [docs:Add license checker GitHub Action.](https://github.com/Tencent/spring-cloud-tencent/pull/839) - [refactor:move loadbalancer to discovery module.](https://github.com/Tencent/spring-cloud-tencent/pull/844) +- [fix:fix the error capture of rate limit exception.](https://github.com/Tencent/spring-cloud-tencent/pull/854) diff --git a/spring-cloud-tencent-examples/polaris-ratelimit-example/ratelimit-callee-service/src/main/java/com/tencent/cloud/ratelimit/example/service/callee/BusinessController.java b/spring-cloud-tencent-examples/polaris-ratelimit-example/ratelimit-callee-service/src/main/java/com/tencent/cloud/ratelimit/example/service/callee/BusinessController.java index 17b14efa9..11d31fd58 100644 --- a/spring-cloud-tencent-examples/polaris-ratelimit-example/ratelimit-callee-service/src/main/java/com/tencent/cloud/ratelimit/example/service/callee/BusinessController.java +++ b/spring-cloud-tencent-examples/polaris-ratelimit-example/ratelimit-callee-service/src/main/java/com/tencent/cloud/ratelimit/example/service/callee/BusinessController.java @@ -46,15 +46,12 @@ public class BusinessController { private static final Logger LOG = LoggerFactory.getLogger(BusinessController.class); private final AtomicInteger index = new AtomicInteger(0); - + private final AtomicLong lastTimestamp = new AtomicLong(0); @Autowired private RestTemplate restTemplate; - @Value("${spring.application.name}") private String appName; - private AtomicLong lastTimestamp = new AtomicLong(0); - /** * Get information. * @return information @@ -87,6 +84,7 @@ public class BusinessController { }).start(); } count.await(); + index.set(0); return builder.toString(); } diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/resttemplate/EnhancedRestTemplateReporter.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/resttemplate/EnhancedRestTemplateReporter.java index 021ba7268..b40bde6ba 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/resttemplate/EnhancedRestTemplateReporter.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/resttemplate/EnhancedRestTemplateReporter.java @@ -44,6 +44,7 @@ import org.springframework.context.ApplicationContextAware; import org.springframework.http.HttpMethod; import org.springframework.http.client.ClientHttpResponse; import org.springframework.lang.NonNull; +import org.springframework.web.client.DefaultResponseErrorHandler; import org.springframework.web.client.ResponseErrorHandler; import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; @@ -69,6 +70,9 @@ public class EnhancedRestTemplateReporter extends AbstractPolarisReporterAdapter public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { String[] handlerBeanNames = applicationContext.getBeanNamesForType(ResponseErrorHandler.class); if (handlerBeanNames.length == 1) { + if (this.delegateHandler == null) { + this.delegateHandler = new DefaultResponseErrorHandler(); + } return; }