core: Don't forward acceptResolvedAddresses() (#9511)

Forwarding acceptResolvedAddresses() to a delegate in ForwardingLoadBalancer can cause problems if an extending class expects its handleResolvedAddresses implementation to be called even when a client calls handleResolvedAddresses(). This would not happen as ForwardingLoadBalancer would directly send the call to the delegate.
This commit is contained in:
Terry Wilson 2022-09-06 13:06:48 -07:00 committed by GitHub
parent c8c3d3d6b2
commit 2ee65a9c26
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 8 deletions

View File

@ -34,11 +34,6 @@ public abstract class ForwardingLoadBalancer extends LoadBalancer {
delegate().handleResolvedAddresses(resolvedAddresses);
}
@Override
public boolean acceptResolvedAddresses(ResolvedAddresses resolvedAddresses) {
return delegate().acceptResolvedAddresses(resolvedAddresses);
}
@Override
public void handleNameResolutionError(Status error) {
delegate().handleNameResolutionError(error);

View File

@ -20,8 +20,8 @@ import static org.mockito.Mockito.mock;
import io.grpc.ForwardingTestUtil;
import io.grpc.LoadBalancer;
import java.lang.reflect.Method;
import java.util.Collections;
import io.grpc.LoadBalancer.ResolvedAddresses;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@ -44,6 +44,7 @@ public class ForwardingLoadBalancerTest {
LoadBalancer.class,
mockDelegate,
new TestBalancer(),
Collections.<Method>emptyList());
Arrays.asList(
LoadBalancer.class.getMethod("acceptResolvedAddresses", ResolvedAddresses.class)));
}
}