From 810827c91c5f1fca9045c2b77929c74149287c11 Mon Sep 17 00:00:00 2001 From: KomachiSion <263976490@qq.com> Date: Fri, 29 May 2020 12:05:14 +0800 Subject: [PATCH 1/5] Fix serverStatus api jackson error --- .../alibaba/nacos/naming/controllers/ServiceController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/naming/src/main/java/com/alibaba/nacos/naming/controllers/ServiceController.java b/naming/src/main/java/com/alibaba/nacos/naming/controllers/ServiceController.java index 71b3dcb9d8d..bf4a694aa06 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/controllers/ServiceController.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/controllers/ServiceController.java @@ -288,8 +288,8 @@ public String serviceStatus(HttpServletRequest request) throws Exception { JsonNode json = JacksonUtils.toObj(value); //format: service1@@checksum@@@service2@@checksum - String statuses = json.get("statuses").toString(); - String serverIp = json.get("clientIP").toString(); + String statuses = json.get("statuses").asText(); + String serverIp = json.get("clientIP").asText(); if (!memberManager.hasMember(serverIp)) { throw new NacosException(NacosException.INVALID_PARAM, From 866f13426243bb4cc9f8bef23efd92bde481a13a Mon Sep 17 00:00:00 2001 From: KomachiSion <263976490@qq.com> Date: Fri, 29 May 2020 14:18:08 +0800 Subject: [PATCH 2/5] Fix circle dependency error in Cluster --- .../alibaba/nacos/naming/core/Cluster.java | 1 + .../nacos/naming/core/ClusterTest.java | 20 ++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/Cluster.java b/naming/src/main/java/com/alibaba/nacos/naming/core/Cluster.java index c32af070bc3..9c8037b63f9 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/core/Cluster.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/core/Cluster.java @@ -119,6 +119,7 @@ public void destroy() { } } + @JsonIgnore public HealthCheckTask getHealthCheckTask() { return checkTask; } diff --git a/naming/src/test/java/com/alibaba/nacos/naming/core/ClusterTest.java b/naming/src/test/java/com/alibaba/nacos/naming/core/ClusterTest.java index ddb9643e8f3..eaf89414095 100644 --- a/naming/src/test/java/com/alibaba/nacos/naming/core/ClusterTest.java +++ b/naming/src/test/java/com/alibaba/nacos/naming/core/ClusterTest.java @@ -17,9 +17,16 @@ import com.alibaba.nacos.api.naming.pojo.healthcheck.impl.Http; import com.alibaba.nacos.common.utils.JacksonUtils; +import com.alibaba.nacos.core.utils.ApplicationUtils; +import com.alibaba.nacos.naming.misc.SwitchDomain; +import com.alibaba.nacos.naming.misc.SwitchDomain.TcpHealthParams; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +import org.springframework.context.ConfigurableApplicationContext; import java.util.ArrayList; import java.util.List; @@ -29,23 +36,34 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.when; /** * @author nkorange */ +@RunWith(MockitoJUnitRunner.class) public class ClusterTest { private Cluster cluster; + @Mock + private ConfigurableApplicationContext context; + + @Mock + private SwitchDomain switchDomain; + @Before public void before() { - + ApplicationUtils.injectContext(context); + when(context.getBean(SwitchDomain.class)).thenReturn(switchDomain); + when(switchDomain.getTcpHealthParams()).thenReturn(new TcpHealthParams()); Service service = new Service(); service.setName("nacos.service.1"); cluster = new Cluster("nacos-cluster-1", service); cluster.setDefCkport(80); cluster.setDefIPPort(8080); + cluster.init(); } From fc714dac74e376b7aa2e84deb352f69183135eaa Mon Sep 17 00:00:00 2001 From: KomachiSion <263976490@qq.com> Date: Fri, 29 May 2020 15:14:13 +0800 Subject: [PATCH 3/5] Fix deserialize error for raft beat --- .../com/alibaba/nacos/naming/controllers/RaftController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/naming/src/main/java/com/alibaba/nacos/naming/controllers/RaftController.java b/naming/src/main/java/com/alibaba/nacos/naming/controllers/RaftController.java index e6aa79a99da..40854d478bc 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/controllers/RaftController.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/controllers/RaftController.java @@ -86,7 +86,7 @@ public JsonNode beat(HttpServletRequest request, HttpServletResponse response) t JsonNode json = JacksonUtils.toObj(value); - RaftPeer peer = raftCore.receivedBeat(json.get("beat")); + RaftPeer peer = raftCore.receivedBeat(JacksonUtils.toObj(json.get("beat").asText())); return JacksonUtils.transferToJsonNode(peer); } From da4cc10e8a6d011cf22767c330b5e8119e5c7aec Mon Sep 17 00:00:00 2001 From: KomachiSion <263976490@qq.com> Date: Fri, 29 May 2020 15:38:25 +0800 Subject: [PATCH 4/5] Fix deserialize error for raft beat --- .../com/alibaba/nacos/naming/controllers/RaftController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/naming/src/main/java/com/alibaba/nacos/naming/controllers/RaftController.java b/naming/src/main/java/com/alibaba/nacos/naming/controllers/RaftController.java index 40854d478bc..425a816a986 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/controllers/RaftController.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/controllers/RaftController.java @@ -233,7 +233,7 @@ public String onDelete(HttpServletRequest request, HttpServletResponse response) String value = URLDecoder.decode(entity, "UTF-8"); value = URLDecoder.decode(value, "UTF-8"); - JsonNode jsonObject = JacksonUtils.createEmptyJsonNode(); + JsonNode jsonObject = JacksonUtils.toObj(value); Datum datum = JacksonUtils.toObj(jsonObject.get("datum").toString(), Datum.class); RaftPeer source = JacksonUtils.toObj(jsonObject.get("source").toString(), RaftPeer.class); From d396a885eadd997e295aabf118f714b2cb882c93 Mon Sep 17 00:00:00 2001 From: KomachiSion <263976490@qq.com> Date: Fri, 29 May 2020 16:22:33 +0800 Subject: [PATCH 5/5] Fix deserialize error for raft beat --- .../com/alibaba/nacos/naming/controllers/RaftController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/naming/src/main/java/com/alibaba/nacos/naming/controllers/RaftController.java b/naming/src/main/java/com/alibaba/nacos/naming/controllers/RaftController.java index 425a816a986..2813543a276 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/controllers/RaftController.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/controllers/RaftController.java @@ -128,7 +128,7 @@ public String publish(HttpServletRequest request, HttpServletResponse response) String value = URLDecoder.decode(entity, "UTF-8"); JsonNode json = JacksonUtils.toObj(value); - String key = json.get("key").toString(); + String key = json.get("key").asText(); if (KeyBuilder.matchInstanceListKey(key)) { raftConsistencyService.put(key, JacksonUtils.toObj(json.get("value").toString(), Instances.class)); return "ok";