# 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 priorityNames; + private Set priorityNamesSet = new HashSet<>(); // Config for each priority. private Map 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 prioritySet = new HashSet<>(config.priorities); + Set prioritySet = priorityNamesSet; ArrayList childKeys = new ArrayList<>(children.keySet()); for (String priority : childKeys) { if (!prioritySet.contains(priority)) { @@ -122,7 +126,7 @@ final class PriorityLoadBalancer extends LoadBalancer { Collection 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; }