diff --git a/xds/src/main/java/io/grpc/xds/AbstractXdsClient.java b/xds/src/main/java/io/grpc/xds/AbstractXdsClient.java index 5e958d9815e..f6b82775f1e 100644 --- a/xds/src/main/java/io/grpc/xds/AbstractXdsClient.java +++ b/xds/src/main/java/io/grpc/xds/AbstractXdsClient.java @@ -301,13 +301,12 @@ final void sendDiscoveryRequest(XdsResourceType type, Collection reso final void handleRpcResponse(XdsResourceType type, String versionInfo, List resources, String nonce) { + checkNotNull(type, "type"); if (closed) { return; } responseReceived = true; - if (type != null) { - respNonces.put(type, nonce); - } + respNonces.put(type, nonce); xdsResponseHandler.handleResourceResponse(type, serverInfo, versionInfo, resources, nonce); } @@ -391,6 +390,13 @@ public void run() { XdsLogLevel.DEBUG, "Received {0} response:\n{1}", type, MessagePrinter.print(response)); } + if (type == null) { + logger.log( + XdsLogLevel.WARNING, + "Ignore an unknown type of DiscoveryResponse: {0}", + response.getTypeUrl()); + return; + } handleRpcResponse(type, response.getVersionInfo(), response.getResourcesList(), response.getNonce()); } diff --git a/xds/src/main/java/io/grpc/xds/XdsClientImpl.java b/xds/src/main/java/io/grpc/xds/XdsClientImpl.java index a79fc6bfb91..75e618797aa 100644 --- a/xds/src/main/java/io/grpc/xds/XdsClientImpl.java +++ b/xds/src/main/java/io/grpc/xds/XdsClientImpl.java @@ -167,11 +167,8 @@ private void maybeCreateXdsChannelWithLrs(ServerInfo serverInfo) { public void handleResourceResponse( XdsResourceType xdsResourceType, ServerInfo serverInfo, String versionInfo, List resources, String nonce) { + checkNotNull(xdsResourceType, "xdsResourceType"); syncContext.throwIfNotInThisSynchronizationContext(); - if (xdsResourceType == null) { - logger.log(XdsLogLevel.WARNING, "Ignore an unknown type of DiscoveryResponse"); - return; - } Set toParseResourceNames = null; if (!(xdsResourceType == XdsListenerResource.getInstance() || xdsResourceType == XdsRouteConfigureResource.getInstance())