From 9c08dae57d2886fe811e47299d453e47345ad0cf Mon Sep 17 00:00:00 2001 From: ylinzhu <46126022+ylinzhu@users.noreply.github.com> Date: Tue, 15 Nov 2022 10:03:31 +0800 Subject: [PATCH] fix npe when the frontend connection is closed, the statement is still send (#3470) --- .../mysql/nio/handler/query/impl/BaseSelectHandler.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/query/impl/BaseSelectHandler.java b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/query/impl/BaseSelectHandler.java index c062244e6..e34660804 100644 --- a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/query/impl/BaseSelectHandler.java +++ b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/query/impl/BaseSelectHandler.java @@ -24,6 +24,7 @@ import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; @@ -48,7 +49,8 @@ public class BaseSelectHandler extends BaseDMLHandler { public BackendConnection initConnection() throws Exception { if (serverSession.closed()) { - return null; + LOGGER.warn(" FrontendConnection is closed without sending a statement, conn is " + serverSession.getShardingService().getConnection()); + throw new IOException("FrontendConnection is closed"); } BackendConnection exeConn = serverSession.getTarget(rrss);