Open
Description
The way we use ConcurrentHashMap may be not correct.
For example:
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.
Metadata
Metadata
Assignees
Labels
No labels