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.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instance service.
|
* Instance service.
|
||||||
|
|
@ -144,10 +145,15 @@ public class InstanceOperatorClientImpl implements InstanceOperator {
|
||||||
InstanceMetadata result = new InstanceMetadata();
|
InstanceMetadata result = new InstanceMetadata();
|
||||||
result.setEnabled(instance.isEnabled());
|
result.setEnabled(instance.isEnabled());
|
||||||
result.setWeight(instance.getWeight());
|
result.setWeight(instance.getWeight());
|
||||||
result.getExtendData().putAll(instance.getMetadata());
|
result.getExtendData().putAll(filterNullValue(instance.getMetadata()));
|
||||||
return result;
|
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
|
@Override
|
||||||
public void patchInstance(String namespaceId, String groupName, String serviceName, InstancePatchObject patchObject)
|
public void patchInstance(String namespaceId, String groupName, String serviceName, InstancePatchObject patchObject)
|
||||||
throws NacosException {
|
throws NacosException {
|
||||||
|
|
|
||||||
|
|
@ -164,6 +164,17 @@ class InstanceOperatorClientImplTest {
|
||||||
Mockito.verify(metadataOperateService).updateInstanceMetadata(Mockito.any(), Mockito.any(), Mockito.any());
|
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
|
@Test
|
||||||
void testPatchInstance() throws NacosException {
|
void testPatchInstance() throws NacosException {
|
||||||
Instance instance = new Instance();
|
Instance instance = new Instance();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue