Skip to content

Commit c43ded4

Browse files
committed
core: Validate load-balancing policy name early in ManagedChannelBuilder (#12695)
1 parent 6d5cd14 commit c43ded4

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

api/src/main/java/io/grpc/ManagedChannelBuilder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,10 @@ public T useTransportSecurity() {
282282
*/
283283
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/1771")
284284
public T defaultLoadBalancingPolicy(String policy) {
285+
Preconditions.checkArgument(
286+
LoadBalancerRegistry.getDefaultRegistry().getProvider(policy) != null,
287+
"invalid load balancing policy %s", policy
288+
);
285289
throw new UnsupportedOperationException();
286290
}
287291

core/src/main/java/io/grpc/internal/ManagedChannelImplBuilder.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import io.grpc.InternalChannelz;
4040
import io.grpc.InternalConfiguratorRegistry;
4141
import io.grpc.InternalFeatureFlags;
42+
import io.grpc.LoadBalancerRegistry;
4243
import io.grpc.ManagedChannel;
4344
import io.grpc.ManagedChannelBuilder;
4445
import io.grpc.MethodDescriptor;
@@ -447,6 +448,12 @@ public ManagedChannelImplBuilder defaultLoadBalancingPolicy(String policy) {
447448
"directServerAddress is set (%s), which forbids the use of load-balancing policy",
448449
directServerAddress);
449450
Preconditions.checkArgument(policy != null, "policy cannot be null");
451+
452+
Preconditions.checkArgument(
453+
LoadBalancerRegistry.getDefaultRegistry().getProvider(policy) != null,
454+
"invalid load-balancing policy %s", policy
455+
);
456+
450457
this.defaultLbPolicy = policy;
451458
return this;
452459
}

0 commit comments

Comments
 (0)