Skip to content

Commit 188a269

Browse files
author
fishtailfu
committed
fix: fix ServiceAddressRepository NPE
1 parent 9b6b695 commit 188a269

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

polaris-common/polaris-client/src/main/java/com/tencent/polaris/client/remote/ServiceAddressRepository.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.tencent.polaris.annonation.JustForTest;
2121
import com.tencent.polaris.api.config.consumer.ServiceRouterConfig;
2222
import com.tencent.polaris.api.config.verify.DefaultValues;
23+
import com.tencent.polaris.api.exception.ErrorCode;
2324
import com.tencent.polaris.api.exception.PolarisException;
2425
import com.tencent.polaris.api.plugin.common.PluginTypes;
2526
import com.tencent.polaris.api.plugin.compose.Extensions;
@@ -135,6 +136,13 @@ public Node getServiceAddressNode() throws PolarisException {
135136
if (CollectionUtils.isNotEmpty(nodes)) {
136137
LoadBalancer loadBalancer = (LoadBalancer) extensions.getPlugins()
137138
.getPlugin(PluginTypes.LOAD_BALANCER.getBaseType(), lbPolicy);
139+
if (loadBalancer == null) {
140+
// 降级为轮训
141+
if (curIndex >= nodes.size()) {
142+
curIndex = 0;
143+
}
144+
return nodes.get(curIndex++);
145+
}
138146
Criteria criteria = new Criteria();
139147
criteria.setHashKey(this.clientId);
140148
Instance instance = BaseFlow.processLoadBalance(loadBalancer, criteria, remoteAddresses,

0 commit comments

Comments
 (0)