diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryDirectory.java b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryDirectory.java index 307ffadf7646..2c55e3513bdb 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryDirectory.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryDirectory.java @@ -575,9 +575,13 @@ private void destroyUnusedInvokers(Map> oldUrlInvokerMap, Map } public List> doList(Invocation invocation) { - if (forbidden) { + String mockInvocation = invocation.getAttachment(Constants.INVOCATION_NEED_MOCK); + if (Boolean.TRUE.toString().equals(mockInvocation)) { + logger.info("Don't throw RpcException when mock invocation occurs."); + } else if (forbidden) { throw new RpcException(RpcException.FORBIDDEN_EXCEPTION, "Forbid consumer " + NetUtils.getLocalHost() + " access service " + getInterface().getName() + " from registry " + getUrl().getAddress() + " use dubbo version " + Version.getVersion() + ", Please check registry access list (whitelist/blacklist)."); } + List> invokers = null; Map>> localMethodInvokerMap = this.methodInvokerMap; // local reference if (localMethodInvokerMap != null && localMethodInvokerMap.size() > 0) {