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