fix throw npe when router context is null (#635)

pull/639/head
lepdou 2 years ago committed by GitHub
parent d9cf9a0301
commit c472aa87ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -13,3 +13,4 @@
- [fix pr 613: modify a judgment logic](https://github.com/Tencent/spring-cloud-tencent/pull/618) - [fix pr 613: modify a judgment logic](https://github.com/Tencent/spring-cloud-tencent/pull/618)
- [Feature: support new label expression](https://github.com/Tencent/spring-cloud-tencent/pull/627) - [Feature: support new label expression](https://github.com/Tencent/spring-cloud-tencent/pull/627)
- [feat:report the labels when using RestTemplate.](https://github.com/Tencent/spring-cloud-tencent/pull/629) - [feat:report the labels when using RestTemplate.](https://github.com/Tencent/spring-cloud-tencent/pull/629)
- [Bugfix: fix throw npe when router context is null](https://github.com/Tencent/spring-cloud-tencent/pull/635)

@ -95,21 +95,23 @@ public class PolarisRouterServiceInstanceListSupplier extends DelegatingServiceI
Flux<List<ServiceInstance>> allServers = getDelegate().get(); Flux<List<ServiceInstance>> allServers = getDelegate().get();
// 2. filter by router // 2. filter by router
PolarisRouterContext routerContext = null;
DefaultRequestContext requestContext = (DefaultRequestContext) request.getContext(); DefaultRequestContext requestContext = (DefaultRequestContext) request.getContext();
PolarisRouterContext key;
if (requestContext instanceof RequestDataContext) { if (requestContext instanceof RequestDataContext) {
key = buildRouterContext(((RequestDataContext) requestContext).getClientRequest().getHeaders()); routerContext = buildRouterContext(((RequestDataContext) requestContext).getClientRequest().getHeaders());
} }
else if (requestContext.getClientRequest() instanceof PolarisLoadBalancerRequest) { else if (requestContext.getClientRequest() instanceof PolarisLoadBalancerRequest) {
key = buildRouterContext(((PolarisLoadBalancerRequest<?>) requestContext.getClientRequest()).getRequest() routerContext = buildRouterContext(((PolarisLoadBalancerRequest<?>) requestContext.getClientRequest()).getRequest()
.getHeaders()); .getHeaders());
} }
else {
if (routerContext == null) {
// return all servers if router context is null. // return all servers if router context is null.
return allServers; return allServers;
} }
return doRouter(allServers, key); return doRouter(allServers, routerContext);
} }
//set method to public for unit test //set method to public for unit test

Loading…
Cancel
Save