diff --git a/src/main/java/com/actiontech/dble/backend/mysql/nio/MySQLConnection.java b/src/main/java/com/actiontech/dble/backend/mysql/nio/MySQLConnection.java index 0dfe77d19..30fead248 100644 --- a/src/main/java/com/actiontech/dble/backend/mysql/nio/MySQLConnection.java +++ b/src/main/java/com/actiontech/dble/backend/mysql/nio/MySQLConnection.java @@ -549,6 +549,12 @@ public class MySQLConnection extends AbstractConnection implements this.recycler = recycler; } + public void backendSpecialCleanUp() { + isExecuting = false; + isRowDataFlowing = false; + this.signal(); + } + public void signal() { if (recycler != null) { recycler.signal(); diff --git a/src/main/java/com/actiontech/dble/backend/mysql/nio/MySQLConnectionHandler.java b/src/main/java/com/actiontech/dble/backend/mysql/nio/MySQLConnectionHandler.java index 7486714af..d1a5fabe1 100644 --- a/src/main/java/com/actiontech/dble/backend/mysql/nio/MySQLConnectionHandler.java +++ b/src/main/java/com/actiontech/dble/backend/mysql/nio/MySQLConnectionHandler.java @@ -227,12 +227,11 @@ public class MySQLConnectionHandler extends BackendAsyncHandler { if (session != null && !source.isTesting() && this.source.getLogResponse().compareAndSet(false, true)) { session.setBackendResponseEndTime(this.source); } - this.source.setExecuting(false); - this.source.setRowDataFlowing(false); this.source.getLogResponse().set(false); - this.source.signal(); - if (responseHandler != null) { - responseHandler.rowEofResponse(data, false, source); + ResponseHandler respHand = responseHandler; + if (respHand != null) { + this.source.backendSpecialCleanUp(); + respHand.rowEofResponse(data, false, source); } else { closeNoHandler(); }