From 4671ba07e5183bfb8a28341a690b1aa5b5558743 Mon Sep 17 00:00:00 2001 From: Honghua Zhu Date: Wed, 3 Jan 2024 15:19:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A6=82=E6=9E=9Csession=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84connection=E4=B8=8D=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E5=8F=91=E9=80=81=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=20https://github.com/lealone/Lealone/issues/219?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lealone/server/scheduler/SessionInfo.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lealone-server/src/main/java/com/lealone/server/scheduler/SessionInfo.java b/lealone-server/src/main/java/com/lealone/server/scheduler/SessionInfo.java index 14aa2fc76..77b9c1f99 100644 --- a/lealone-server/src/main/java/com/lealone/server/scheduler/SessionInfo.java +++ b/lealone-server/src/main/java/com/lealone/server/scheduler/SessionInfo.java @@ -140,7 +140,11 @@ YieldableCommand getYieldableCommand(boolean checkTimeout) { } void sendError(int packetId, Throwable e) { - conn.sendError(session, packetId, e); + // 如果session没有对应的connection不需要发送错误信息 + if (conn != null) + conn.sendError(session, packetId, e); + else + logger.error("", e); } @Override @@ -150,9 +154,11 @@ public void onTimeout(YieldableCommand c, Throwable e) { boolean isMarkClosed() { if (session.isMarkClosed()) { - conn.closeSession(this); - if (conn.getSessionCount() == 0) - conn.close(); + if (conn != null) { + conn.closeSession(this); + if (conn.getSessionCount() == 0) + conn.close(); + } return true; } return false;