The way we use ConcurrentHashMap may be not correct. For example: ```java List<RpcProvider> currentProviderList = providers.get(rpcService); if (currentProviderList == null) { //todo 2019-07-05 11:23 线程安全问题 providers.put(rpcService, providerList); } else { for (RpcProvider provider : providerList) { if (currentProviderList.contains(provider)) { continue; } currentProviderList.add(provider); } } ``` Sometimes `put()` method may be invoked twice, it is not we expected.