From e2eedd6b71d290e4a729fe49e1f6bfdb925932bc Mon Sep 17 00:00:00 2001 From: anselleeyy <573459407@qq.com> Date: Sun, 9 Jan 2022 19:33:08 +0800 Subject: [PATCH 1/7] bugfix: fix seata-test UT not work --- test/pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/pom.xml b/test/pom.xml index 49a95b762a8..8646f7e456f 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -59,6 +59,12 @@ ${project.groupId} seata-server ${project.version} + + + io.seata + seata-spring-autoconfigure-core + + ${project.groupId} From cd1b981913e35fc75731354e09c72158a806dd6e Mon Sep 17 00:00:00 2001 From: anselleeyy <573459407@qq.com> Date: Sun, 9 Jan 2022 19:33:16 +0800 Subject: [PATCH 2/7] fix: fix json parse error --- .../impl/SpringBeanServiceInvoker.java | 24 ++++++++----------- .../statelang/parser/impl/FastjsonParser.java | 2 +- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/saga/seata-saga-engine/src/main/java/io/seata/saga/engine/invoker/impl/SpringBeanServiceInvoker.java b/saga/seata-saga-engine/src/main/java/io/seata/saga/engine/invoker/impl/SpringBeanServiceInvoker.java index 38754430ed5..9f4908a8b94 100644 --- a/saga/seata-saga-engine/src/main/java/io/seata/saga/engine/invoker/impl/SpringBeanServiceInvoker.java +++ b/saga/seata-saga-engine/src/main/java/io/seata/saga/engine/invoker/impl/SpringBeanServiceInvoker.java @@ -286,27 +286,23 @@ protected Object invokeMethod(Object serviceBean, Method method, Object... input } } - protected Object toJavaObject(Object value, Class paramType) { + protected Object toJavaObject(Object value, Class paramType) { if (value == null) { return value; } - if (value instanceof Map || value instanceof List) { - return jsonParseToJavaObject(value, paramType); - } else if (paramType.isAssignableFrom(value.getClass()) || isPrimitive(paramType)) { + if (paramType.isAssignableFrom(value.getClass())) { + return value; + } else if (isPrimitive(paramType)) { return value; } else { - return jsonParseToJavaObject(value, paramType); - } - } - - protected Object jsonParseToJavaObject(Object value, Class paramType) { - JsonParser jsonParser = JsonParserFactory.getJsonParser(getSagaJsonParser()); - if (jsonParser == null) { - throw new RuntimeException("Cannot get JsonParser by name : " + getSagaJsonParser()); + JsonParser jsonParser = JsonParserFactory.getJsonParser(getSagaJsonParser()); + if (jsonParser == null) { + throw new RuntimeException("Cannot get JsonParser by name : " + getSagaJsonParser()); + } + String jsonValue = jsonParser.toJsonString(value, true, false); + return jsonParser.parse(jsonValue, paramType, false); } - String jsonValue = jsonParser.toJsonString(value, true, false); - return jsonParser.parse(jsonValue, paramType, false); } protected boolean isPrimitive(Class clazz) { diff --git a/saga/seata-saga-statelang/src/main/java/io/seata/saga/statelang/parser/impl/FastjsonParser.java b/saga/seata-saga-statelang/src/main/java/io/seata/saga/statelang/parser/impl/FastjsonParser.java index 59e8b998d88..b7ccfb35a59 100644 --- a/saga/seata-saga-statelang/src/main/java/io/seata/saga/statelang/parser/impl/FastjsonParser.java +++ b/saga/seata-saga-statelang/src/main/java/io/seata/saga/statelang/parser/impl/FastjsonParser.java @@ -80,7 +80,7 @@ public String toJsonString(Object o, boolean ignoreAutoType, boolean prettyPrint @Override public T parse(String json, Class type, boolean ignoreAutoType) { if (ignoreAutoType) { - return JSON.parseObject(json, type, Feature.DisableSpecialKeyDetect, Feature.OrderedField); + return JSON.parseObject(json, type, Feature.IgnoreAutoType, Feature.OrderedField); } else { return JSON.parseObject(json, type, Feature.SupportAutoType, Feature.OrderedField); From 1d8dc7a2626e320acea7117df9cb0dbff95918ac Mon Sep 17 00:00:00 2001 From: anselleeyy <573459407@qq.com> Date: Sun, 9 Jan 2022 21:42:47 +0800 Subject: [PATCH 3/7] fix test skipped --- test/pom.xml | 2 +- .../test/java/io/seata/core/rpc/netty/TmNettyClientTest.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 8646f7e456f..3faa9ae2267 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -35,7 +35,7 @@ methods true - true + false diff --git a/test/src/test/java/io/seata/core/rpc/netty/TmNettyClientTest.java b/test/src/test/java/io/seata/core/rpc/netty/TmNettyClientTest.java index c38ef420b26..77db356c588 100644 --- a/test/src/test/java/io/seata/core/rpc/netty/TmNettyClientTest.java +++ b/test/src/test/java/io/seata/core/rpc/netty/TmNettyClientTest.java @@ -26,6 +26,7 @@ import io.seata.server.coordinator.DefaultCoordinator; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder; @@ -116,7 +117,7 @@ public void testReconnect() throws Exception { tmNettyRemotingClient.destroy(); } - @Test + @Disabled public void testSendMsgWithResponse() throws Exception { ThreadPoolExecutor workingThreads = initMessageExecutor(); NettyRemotingServer nettyRemotingServer = new NettyRemotingServer(workingThreads); From ed837b05c9555c79fc9e799cfe76d693ec3288ba Mon Sep 17 00:00:00 2001 From: anselleeyy <573459407@qq.com> Date: Mon, 10 Jan 2022 10:56:21 +0800 Subject: [PATCH 4/7] fix: fix fail on tm-client test --- .../core/rpc/netty/TmNettyClientTest.java | 15 ++++----- test/src/test/resources/file.conf | 33 +++++++++++++++++++ 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/test/src/test/java/io/seata/core/rpc/netty/TmNettyClientTest.java b/test/src/test/java/io/seata/core/rpc/netty/TmNettyClientTest.java index 77db356c588..57e28863716 100644 --- a/test/src/test/java/io/seata/core/rpc/netty/TmNettyClientTest.java +++ b/test/src/test/java/io/seata/core/rpc/netty/TmNettyClientTest.java @@ -15,6 +15,11 @@ */ package io.seata.core.rpc.netty; +import java.lang.management.ManagementFactory; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + import io.netty.channel.Channel; import io.seata.common.XID; import io.seata.common.util.NetUtil; @@ -25,15 +30,7 @@ import io.seata.server.UUIDGenerator; import io.seata.server.coordinator.DefaultCoordinator; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.TestMethodOrder; - -import java.lang.management.ManagementFactory; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; /** * @author slievrly @@ -117,7 +114,7 @@ public void testReconnect() throws Exception { tmNettyRemotingClient.destroy(); } - @Disabled + @Test public void testSendMsgWithResponse() throws Exception { ThreadPoolExecutor workingThreads = initMessageExecutor(); NettyRemotingServer nettyRemotingServer = new NettyRemotingServer(workingThreads); diff --git a/test/src/test/resources/file.conf b/test/src/test/resources/file.conf index 3c143f95b53..5454c4dc81c 100644 --- a/test/src/test/resources/file.conf +++ b/test/src/test/resources/file.conf @@ -1,3 +1,36 @@ +transport { + # tcp, unix-domain-socket + type = "TCP" + #NIO, NATIVE + server = "NIO" + #enable heartbeat + heartbeat = true + # the tm client batch send request enable + enableTmClientBatchSendRequest = true + # the rm client batch send request enable + enableRmClientBatchSendRequest = true + #thread factory for netty + threadFactory { + bossThreadPrefix = "NettyBoss" + workerThreadPrefix = "NettyServerNIOWorker" + serverExecutorThread-prefix = "NettyServerBizHandler" + shareBossWorker = false + clientSelectorThreadPrefix = "NettyClientSelector" + clientSelectorThreadSize = 1 + clientWorkerThreadPrefix = "NettyClientWorkerThread" + # netty boss thread size + bossThreadSize = 1 + #auto default pin or 8 + workerThreadSize = "default" + } + shutdown { + # when destroy server, wait seconds + wait = 3 + } + serialization = "seata" + compressor = "none" +} + service { #transaction service group mapping vgroupMapping.default_tx_group = "default" From 5857675062f04b2b6e7c55f3a6561bde4c6ea04a Mon Sep 17 00:00:00 2001 From: anselleeyy <573459407@qq.com> Date: Mon, 10 Jan 2022 11:26:45 +0800 Subject: [PATCH 5/7] fix: unable parallel operation --- test/pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/test/pom.xml b/test/pom.xml index 3faa9ae2267..4c655d1c309 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -32,11 +32,6 @@ org.apache.maven.plugins maven-surefire-plugin - - methods - true - false - org.apache.maven.plugins From 1687a27b0ab6104fc6709b3b5bebf64e8e904495 Mon Sep 17 00:00:00 2001 From: anselleeyy <573459407@qq.com> Date: Mon, 10 Jan 2022 20:14:24 +0800 Subject: [PATCH 6/7] fix: fix errormsg --- test/pom.xml | 5 +++++ .../test/java/io/seata/core/rpc/netty/TmNettyClientTest.java | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/test/pom.xml b/test/pom.xml index 4c655d1c309..3faa9ae2267 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -32,6 +32,11 @@ org.apache.maven.plugins maven-surefire-plugin + + methods + true + false + org.apache.maven.plugins diff --git a/test/src/test/java/io/seata/core/rpc/netty/TmNettyClientTest.java b/test/src/test/java/io/seata/core/rpc/netty/TmNettyClientTest.java index 57e28863716..a2ac66f3a2f 100644 --- a/test/src/test/java/io/seata/core/rpc/netty/TmNettyClientTest.java +++ b/test/src/test/java/io/seata/core/rpc/netty/TmNettyClientTest.java @@ -29,6 +29,7 @@ import io.seata.saga.engine.db.AbstractServerTest; import io.seata.server.UUIDGenerator; import io.seata.server.coordinator.DefaultCoordinator; +import io.seata.server.session.SessionHolder; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -119,6 +120,7 @@ public void testSendMsgWithResponse() throws Exception { ThreadPoolExecutor workingThreads = initMessageExecutor(); NettyRemotingServer nettyRemotingServer = new NettyRemotingServer(workingThreads); new Thread(() -> { + SessionHolder.init(null); nettyRemotingServer.setHandler(DefaultCoordinator.getInstance(nettyRemotingServer)); // set registry XID.setIpAddress(NetUtil.getLocalIp()); @@ -145,7 +147,7 @@ public void testSendMsgWithResponse() throws Exception { BranchRegisterResponse branchRegisterResponse = (BranchRegisterResponse) tmNettyRemotingClient.sendSyncRequest(request); Assertions.assertNotNull(branchRegisterResponse); Assertions.assertEquals(ResultCode.Failed, branchRegisterResponse.getResultCode()); - Assertions.assertEquals("RuntimeException[SessionManager is NOT init!]", + Assertions.assertEquals("TransactionException[Could not found global transaction xid = 127.0.0.1:8091:1249853, may be has finished.]", branchRegisterResponse.getMsg()); nettyRemotingServer.destroy(); tmNettyRemotingClient.destroy(); From e6439bf37482025830d1112327e356f59fe569a8 Mon Sep 17 00:00:00 2001 From: anselleeyy <573459407@qq.com> Date: Wed, 12 Jan 2022 13:21:50 +0800 Subject: [PATCH 7/7] add change --- changes/1.5.0.md | 2 ++ changes/en-us/1.5.0.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/changes/1.5.0.md b/changes/1.5.0.md index f82b4fdad4f..ae99078c401 100644 --- a/changes/1.5.0.md +++ b/changes/1.5.0.md @@ -82,6 +82,7 @@ Seata 是一款开源的分布式事务解决方案,提供高性能和简单 - [[#4220](https://github.com/seata/seata/pull/4220)] 修复 `zstd-compressor` 模块未合并到 `seata-all` 中的问题,同时修正其包名。另外,补充了 `kotlin-maven-plugin` 的版本号;顺便优化打包配置。 - [[#4222](https://github.com/seata/seata/pull/4222)] 修复字段列表为空时,插入语句无法回滚的问题 - [[#4233](https://github.com/seata/seata/pull/4233)] 修复 lock 和 branch 数据残留问题 + - [[#4276](https://github.com/seata/seata/pull/4276)] 修复 seata-test 单测不运行的问题 ### optimize: @@ -197,6 +198,7 @@ Seata 是一款开源的分布式事务解决方案,提供高性能和简单 - [portman](https://github.com/iportman) - [lcmvs](https://github.com/lcmvs) - [pengten](https://github.com/pengten) + - [anselleeyy](https://github.com/anselleeyy) 同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。 diff --git a/changes/en-us/1.5.0.md b/changes/en-us/1.5.0.md index 5664e73a6d3..eeb0806d057 100644 --- a/changes/en-us/1.5.0.md +++ b/changes/en-us/1.5.0.md @@ -81,6 +81,7 @@ - [[#4220](https://github.com/seata/seata/pull/4220)] fix some problems with `zstd` compressor and add the version of the `kotlin-maven-plugin` - [[#4222](https://github.com/seata/seata/pull/4222)] fix could not rollback when insert field list is empty - [[#4233](https://github.com/seata/seata/pull/4233)] fix data remanence problems in lock and branch under specific circumstances. + - [[#4276](https://github.com/seata/seata/pull/4276)] fix seata-test module UT not work ### optimize: @@ -196,6 +197,7 @@ - [portman](https://github.com/iportman) - [lcmvs](https://github.com/lcmvs) - [pengten](https://github.com/pengten) + - [anselleeyy](https://github.com/anselleeyy) Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.