31 lines
1.5 KiB
Diff
31 lines
1.5 KiB
Diff
# UNDF: UNDF-2026-000000742
|
|
# UNDF: (leave blank)
|
|
--- a/xds/src/main/java/io/grpc/xds/PriorityLoadBalancer.java
|
|
+++ b/xds/src/main/java/io/grpc/xds/PriorityLoadBalancer.java
|
|
@@ -65,7 +65,7 @@ final class PriorityLoadBalancer extends LoadBalancer {
|
|
private ResolvedAddresses resolvedAddresses;
|
|
// List of priority names in order.
|
|
private List<String> priorityNames;
|
|
+ private Set<String> priorityNamesSet = new HashSet<>();
|
|
// Config for each priority.
|
|
private Map<String, PriorityChildConfig> priorityConfigs;
|
|
|
|
@@ -89,6 +89,7 @@ final class PriorityLoadBalancer extends LoadBalancer {
|
|
checkNotNull(config, "missing priority lb config");
|
|
priorityNames = config.priorities;
|
|
+ priorityNamesSet = new HashSet<>(config.priorities);
|
|
priorityConfigs = config.childConfigs;
|
|
Status status = Status.OK;
|
|
- Set<String> prioritySet = new HashSet<>(config.priorities);
|
|
+ Set<String> prioritySet = priorityNamesSet;
|
|
ArrayList<String> childKeys = new ArrayList<>(children.keySet());
|
|
for (String priority : childKeys) {
|
|
if (!prioritySet.contains(priority)) {
|
|
@@ -122,7 +126,7 @@ final class PriorityLoadBalancer extends LoadBalancer {
|
|
Collection<ChildLbState> childValues = new ArrayList<>(children.values());
|
|
for (ChildLbState child : childValues) {
|
|
- if (priorityNames.contains(child.priority)) {
|
|
+ if (priorityNamesSet.contains(child.priority)) {
|
|
child.lb.handleNameResolutionError(error);
|
|
gotoTransientFailure = false;
|
|
}
|