mirror of https://github.com/alibaba/nacos.git
Fix NPE problem when update instance metadata with null value. (#13628)
Code Coverage / ci (17, ubuntu-latest) (push) Has been cancelled
Details
PUSH-CI / Build dist tar (push) Has been cancelled
Details
PUSH-CI / Docker images (centos, 17) (push) Has been cancelled
Details
PUSH-CI / Deploy nacos (push) Has been cancelled
Details
PUSH-CI / Java e2e Test (push) Has been cancelled
Details
PUSH-CI / GO E2E Test (push) Has been cancelled
Details
PUSH-CI / Cpp E2E Test (push) Has been cancelled
Details
PUSH-CI / Csharp E2E Test (push) Has been cancelled
Details
PUSH-CI / Nodejs E2E Test (push) Has been cancelled
Details
PUSH-CI / Python E2E Test (push) Has been cancelled
Details
PUSH-CI / Clean (push) Has been cancelled
Details
Code Coverage / ci (17, ubuntu-latest) (push) Has been cancelled
Details
PUSH-CI / Build dist tar (push) Has been cancelled
Details
PUSH-CI / Docker images (centos, 17) (push) Has been cancelled
Details
PUSH-CI / Deploy nacos (push) Has been cancelled
Details
PUSH-CI / Java e2e Test (push) Has been cancelled
Details
PUSH-CI / GO E2E Test (push) Has been cancelled
Details
PUSH-CI / Cpp E2E Test (push) Has been cancelled
Details
PUSH-CI / Csharp E2E Test (push) Has been cancelled
Details
PUSH-CI / Nodejs E2E Test (push) Has been cancelled
Details
PUSH-CI / Python E2E Test (push) Has been cancelled
Details
PUSH-CI / Clean (push) Has been cancelled
Details
This commit is contained in:
parent
00e579e765
commit
c4b7ce881f
|
@ -62,6 +62,7 @@ import java.util.LinkedList;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Instance service.
|
||||
|
@ -144,10 +145,15 @@ public class InstanceOperatorClientImpl implements InstanceOperator {
|
|||
InstanceMetadata result = new InstanceMetadata();
|
||||
result.setEnabled(instance.isEnabled());
|
||||
result.setWeight(instance.getWeight());
|
||||
result.getExtendData().putAll(instance.getMetadata());
|
||||
result.getExtendData().putAll(filterNullValue(instance.getMetadata()));
|
||||
return result;
|
||||
}
|
||||
|
||||
private Map<String, String> filterNullValue(Map<String, String> metadata) {
|
||||
return metadata.entrySet().stream().filter(entry -> entry.getValue() != null)
|
||||
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void patchInstance(String namespaceId, String groupName, String serviceName, InstancePatchObject patchObject)
|
||||
throws NacosException {
|
||||
|
|
|
@ -164,6 +164,17 @@ class InstanceOperatorClientImplTest {
|
|||
Mockito.verify(metadataOperateService).updateInstanceMetadata(Mockito.any(), Mockito.any(), Mockito.any());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testUpdateInstanceWithNullValue() throws NacosException {
|
||||
Instance instance = new Instance();
|
||||
instance.setServiceName("C");
|
||||
instance.getMetadata().put("nullValue", null);
|
||||
instanceOperatorClient.updateInstance("A", Constants.DEFAULT_GROUP, "C", instance);
|
||||
|
||||
Mockito.verify(metadataOperateService).updateInstanceMetadata(Mockito.any(), Mockito.any(),
|
||||
Mockito.argThat(argument -> argument.getExtendData().isEmpty()));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testPatchInstance() throws NacosException {
|
||||
Instance instance = new Instance();
|
||||
|
|
Loading…
Reference in New Issue