Use computeIfAbsent() replace putIfAbsent()

pull/1402/head
hailang.zhang 11 months ago
parent 8c8205b552
commit e9da158c9e

@ -276,9 +276,7 @@ public class ClientWorker implements DisposableBean {
if (cacheData != null) {
return cacheData;
}
cacheData = new CacheData(namespace, itemId, threadPoolId);
CacheData lastCacheData = cacheMap.putIfAbsent(threadPoolId, cacheData);
if (lastCacheData == null) {
return cacheMap.computeIfAbsent(threadPoolId, k-> {
String serverConfig;
try {
serverConfig = getServerConfig(namespace, itemId, threadPoolId, defaultTimedOut);
@ -287,9 +285,8 @@ public class ClientWorker implements DisposableBean {
} catch (Exception ex) {
log.error("Cache Data Error. Service Unavailable: {}", ex.getMessage());
}
lastCacheData = cacheData;
}
return lastCacheData;
return cacheData;
});
}
private void setHealthServer(boolean isHealthServer) {

@ -64,11 +64,10 @@ public class BaseInstanceRegistry implements InstanceRegistry<InstanceInfo> {
public void register(InstanceInfo registrant) {
Map<String, Lease<InstanceInfo>> registerMap = registry.get(registrant.getAppName());
if (registerMap == null) {
ConcurrentHashMap<String, Lease<InstanceInfo>> registerNewMap = new ConcurrentHashMap<>();
registerMap = registry.putIfAbsent(registrant.getAppName(), registerNewMap);
if (registerMap == null) {
registerMap = registerNewMap;
}
registerMap = registry.computeIfAbsent(registrant.getAppName(), k -> {
ConcurrentHashMap<String, Lease<InstanceInfo>> registerNewMap = new ConcurrentHashMap<>();
return registerNewMap;
});
}
Lease<InstanceInfo> existingLease = registerMap.get(registrant.getInstanceId());
if (existingLease != null && (existingLease.getHolder() != null)) {

Loading…
Cancel
Save