Commit 55b3cd6e by Nepxion

修复版本过滤的Bug

parent febe5be6
...@@ -67,9 +67,13 @@ public class VersionFilterDiscoveryListener extends AbstractDiscoveryListener { ...@@ -67,9 +67,13 @@ public class VersionFilterDiscoveryListener extends AbstractDiscoveryListener {
// 当前版本的消费端所能调用提供端的版本号列表 // 当前版本的消费端所能调用提供端的版本号列表
List<String> allNoFilterValueList = null; List<String> allNoFilterValueList = null;
// 提供端规则未作任何定义
boolean providerConditionDefined = false;
for (DiscoveryServiceEntity serviceEntity : serviceEntityList) { for (DiscoveryServiceEntity serviceEntity : serviceEntityList) {
String providerServiceName = serviceEntity.getProviderServiceName(); String providerServiceName = serviceEntity.getProviderServiceName();
if (StringUtils.equals(providerServiceName, providerServiceId)) { if (StringUtils.equals(providerServiceName, providerServiceId)) {
providerConditionDefined = true;
List<String> consumerVersionValueList = serviceEntity.getConsumerVersionValueList(); List<String> consumerVersionValueList = serviceEntity.getConsumerVersionValueList();
List<String> providerVersionValueList = serviceEntity.getProviderVersionValueList(); List<String> providerVersionValueList = serviceEntity.getProviderVersionValueList();
...@@ -83,7 +87,7 @@ public class VersionFilterDiscoveryListener extends AbstractDiscoveryListener { ...@@ -83,7 +87,7 @@ public class VersionFilterDiscoveryListener extends AbstractDiscoveryListener {
if (CollectionUtils.isNotEmpty(providerVersionValueList)) { if (CollectionUtils.isNotEmpty(providerVersionValueList)) {
allNoFilterValueList.addAll(providerVersionValueList); allNoFilterValueList.addAll(providerVersionValueList);
} }
} } // 这里的条件,在每一次循环都不满足,会让allNoFilterValueList为null,意味着定义的版本关系都不匹配
} else { } else {
if (allNoFilterValueList == null) { if (allNoFilterValueList == null) {
allNoFilterValueList = new ArrayList<String>(); allNoFilterValueList = new ArrayList<String>();
...@@ -110,8 +114,10 @@ public class VersionFilterDiscoveryListener extends AbstractDiscoveryListener { ...@@ -110,8 +114,10 @@ public class VersionFilterDiscoveryListener extends AbstractDiscoveryListener {
} }
} }
} else { } else {
// 当allNoFilterValueList为null, 意味着定义的版本关系都不匹配,直接清空所有实例 if (providerConditionDefined) {
instances.clear(); // 当allNoFilterValueList为null, 意味着定义的版本关系都不匹配,直接清空所有实例
instances.clear();
}
} }
} }
......
...@@ -66,9 +66,13 @@ public class VersionFilterLoadBalanceListener extends AbstractLoadBalanceListene ...@@ -66,9 +66,13 @@ public class VersionFilterLoadBalanceListener extends AbstractLoadBalanceListene
// 当前版本的消费端所能调用提供端的版本号列表 // 当前版本的消费端所能调用提供端的版本号列表
List<String> allNoFilterValueList = null; List<String> allNoFilterValueList = null;
// 提供端规则未作任何定义
boolean providerConditionDefined = false;
for (DiscoveryServiceEntity serviceEntity : serviceEntityList) { for (DiscoveryServiceEntity serviceEntity : serviceEntityList) {
String providerServiceName = serviceEntity.getProviderServiceName(); String providerServiceName = serviceEntity.getProviderServiceName();
if (StringUtils.equals(providerServiceName, providerServiceId)) { if (StringUtils.equals(providerServiceName, providerServiceId)) {
providerConditionDefined = true;
List<String> consumerVersionValueList = serviceEntity.getConsumerVersionValueList(); List<String> consumerVersionValueList = serviceEntity.getConsumerVersionValueList();
List<String> providerVersionValueList = serviceEntity.getProviderVersionValueList(); List<String> providerVersionValueList = serviceEntity.getProviderVersionValueList();
...@@ -82,7 +86,7 @@ public class VersionFilterLoadBalanceListener extends AbstractLoadBalanceListene ...@@ -82,7 +86,7 @@ public class VersionFilterLoadBalanceListener extends AbstractLoadBalanceListene
if (CollectionUtils.isNotEmpty(providerVersionValueList)) { if (CollectionUtils.isNotEmpty(providerVersionValueList)) {
allNoFilterValueList.addAll(providerVersionValueList); allNoFilterValueList.addAll(providerVersionValueList);
} }
} } // 这里的条件,在每一次循环都不满足,会让allNoFilterValueList为null,意味着定义的版本关系都不匹配
} else { } else {
if (allNoFilterValueList == null) { if (allNoFilterValueList == null) {
allNoFilterValueList = new ArrayList<String>(); allNoFilterValueList = new ArrayList<String>();
...@@ -109,8 +113,10 @@ public class VersionFilterLoadBalanceListener extends AbstractLoadBalanceListene ...@@ -109,8 +113,10 @@ public class VersionFilterLoadBalanceListener extends AbstractLoadBalanceListene
} }
} }
} else { } else {
// 当allNoFilterValueList为null, 意味着定义的版本关系都不匹配,直接清空所有实例 if (providerConditionDefined) {
servers.clear(); // 当allNoFilterValueList为null, 意味着定义的版本关系都不匹配,直接清空所有实例
servers.clear();
}
} }
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment