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.