@@ -294,20 +294,14 @@ public ManagedChannelImplBuilder(
294294 String target , @ Nullable ChannelCredentials channelCreds , @ Nullable CallCredentials callCreds ,
295295 ClientTransportFactoryBuilder clientTransportFactoryBuilder ,
296296 @ Nullable ChannelBuilderDefaultPortProvider channelBuilderDefaultPortProvider ) {
297- this .target = checkNotNull (target , "target" );
298- this .channelCredentials = channelCreds ;
299- this .callCredentials = callCreds ;
300- this .clientTransportFactoryBuilder = checkNotNull (clientTransportFactoryBuilder ,
301- "clientTransportFactoryBuilder" );
302- this .directServerAddress = null ;
303-
304- if (channelBuilderDefaultPortProvider != null ) {
305- this .channelBuilderDefaultPortProvider = channelBuilderDefaultPortProvider ;
306- } else {
307- this .channelBuilderDefaultPortProvider = new ManagedChannelDefaultPortProvider ();
308- }
309- // TODO(dnvindhya): Move configurator to all the individual builders
310- InternalConfiguratorRegistry .configureChannelBuilder (this );
297+ this (
298+ target ,
299+ channelCreds ,
300+ callCreds ,
301+ clientTransportFactoryBuilder ,
302+ channelBuilderDefaultPortProvider ,
303+ null ,
304+ null );
311305 }
312306
313307 /**
@@ -337,17 +331,15 @@ public ManagedChannelImplBuilder(
337331 "clientTransportFactoryBuilder" );
338332 this .directServerAddress = null ;
339333
340- if (channelBuilderDefaultPortProvider != null ) {
341- this .channelBuilderDefaultPortProvider = channelBuilderDefaultPortProvider ;
342- } else {
343- this .channelBuilderDefaultPortProvider = new ManagedChannelDefaultPortProvider ();
344- }
345- if (nameResolverRegistry != null ) {
346- this .nameResolverRegistry = nameResolverRegistry ;
347- }
348- if (nameResolverProvider != null ) {
349- this .nameResolverProvider = nameResolverProvider ;
350- }
334+ this .channelBuilderDefaultPortProvider =
335+ channelBuilderDefaultPortProvider != null
336+ ? channelBuilderDefaultPortProvider
337+ : new ManagedChannelDefaultPortProvider ();
338+ this .nameResolverRegistry =
339+ nameResolverRegistry != null
340+ ? nameResolverRegistry
341+ : NameResolverRegistry .getDefaultRegistry ();
342+ this .nameResolverProvider = nameResolverProvider ;
351343
352344 // TODO(dnvindhya): Move configurator to all the individual builders
353345 InternalConfiguratorRegistry .configureChannelBuilder (this );
@@ -908,33 +900,32 @@ static ResolvedNameResolver getNameResolverProvider(
908900 if (targetUri != null ) {
909901 // For "localhost:8080" this would likely cause provider to be null, because "localhost" is
910902 // parsed as the scheme. Will hit the next case and try "dns:///localhost:8080".
911- provider = nameResolverProvider ;
912- if (provider == null ) {
903+ // Use the explicit provider if its scheme matches the target URI.
904+ if (nameResolverProvider != null
905+ && targetUri .getScheme ().equals (nameResolverProvider .getDefaultScheme ())) {
906+ provider = nameResolverProvider ;
907+ } else {
913908 provider = nameResolverRegistry .getProviderForScheme (targetUri .getScheme ());
914909 }
915910 }
916911
917- if (!URI_PATTERN .matcher (target ).matches ()) {
912+ if (provider == null && !URI_PATTERN .matcher (target ).matches ()) {
918913 // It doesn't look like a URI target. Maybe it's an authority string. Try with
919914 // the default scheme from the registry (if provider is not specified) or
920915 // the provider's default scheme (if provider is specified).
921- String scheme = (provider != null )
922- ? provider .getDefaultScheme ()
923- : (nameResolverProvider != null
924- ? nameResolverProvider .getDefaultScheme ()
925- : nameResolverRegistry .getDefaultScheme ());
916+ String scheme = nameResolverProvider != null
917+ ? nameResolverProvider .getDefaultScheme ()
918+ : nameResolverRegistry .getDefaultScheme ();
926919 try {
927920 targetUri = new URI (scheme , "" , "/" + target , null );
928921 } catch (URISyntaxException e ) {
929- // Should not happen because we just validated the URI.
922+ // Should not be possible
930923 throw new IllegalArgumentException (e );
931924 }
932- if (provider == null ) {
933- if (nameResolverProvider != null ) {
934- provider = nameResolverProvider ;
935- } else {
936- provider = nameResolverRegistry .getProviderForScheme (targetUri .getScheme ());
937- }
925+ if (nameResolverProvider != null ) {
926+ provider = nameResolverProvider ;
927+ } else {
928+ provider = nameResolverRegistry .getProviderForScheme (targetUri .getScheme ());
938929 }
939930 }
940931
0 commit comments