From 8fe3eda0eb227b0296b8629e4dd7c5bc59a2fa81 Mon Sep 17 00:00:00 2001 From: wenyh <44251917+wenyh1@users.noreply.github.com> Date: Mon, 22 May 2023 17:51:45 +0800 Subject: [PATCH] [inner-2222] clear the 'sendData' resource in the transaction correctly (cherry pick) --- .../nio/handler/transaction/TransactionHandlerManager.java | 4 ++++ .../nio/handler/transaction/normal/stage/CommitStage.java | 2 ++ .../nio/handler/transaction/normal/stage/RollbackStage.java | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/transaction/TransactionHandlerManager.java b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/transaction/TransactionHandlerManager.java index 200e0bcd5..7572b3818 100644 --- a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/transaction/TransactionHandlerManager.java +++ b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/transaction/TransactionHandlerManager.java @@ -65,6 +65,10 @@ public class TransactionHandlerManager { } } + public NormalTransactionHandler getNormalTransactionHandler() { + return (NormalTransactionHandler) normalHandler; + } + public void commit() { if (xaTxId != null) { xaHandler.commit(); diff --git a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/transaction/normal/stage/CommitStage.java b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/transaction/normal/stage/CommitStage.java index 27136467b..3f9d45366 100644 --- a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/transaction/normal/stage/CommitStage.java +++ b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/transaction/normal/stage/CommitStage.java @@ -64,6 +64,7 @@ public class CommitStage extends Stage implements TransactionStage { } private void asyncNext(boolean isFail, String errMsg, MySQLPacket sendData) { + session.getTransactionManager().getNormalTransactionHandler().clearResources(); if (isFail) { session.setFinishedCommitTime(); session.setResponseTime(false); @@ -87,6 +88,7 @@ public class CommitStage extends Stage implements TransactionStage { } private void syncNext(boolean isFail, String errMsg, MySQLPacket sendData) { + session.getTransactionManager().getNormalTransactionHandler().clearResources(); if (isFail) { session.getShardingService().setPacketId(0); if (sendData != null) { diff --git a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/transaction/normal/stage/RollbackStage.java b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/transaction/normal/stage/RollbackStage.java index cf452b628..5bcdc1a48 100644 --- a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/transaction/normal/stage/RollbackStage.java +++ b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/transaction/normal/stage/RollbackStage.java @@ -37,7 +37,7 @@ public class RollbackStage implements TransactionStage { } session.setResponseTime(false); - + session.getTransactionManager().getNormalTransactionHandler().clearResources(); LOGGER.info("GET INTO THE NET LEVEL AND THE RESULT IS " + isFail); if (isFail) { if (sendData != null) {