From d8f205731f45bd42ec01e56ef300c38441dc34db Mon Sep 17 00:00:00 2001 From: Li Fangning Date: Thu, 11 Jan 2018 09:43:50 +0800 Subject: [PATCH] [SSHD-793] Fix the memory leak issue of continuing to connect and disconnect sshd. --- .../java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java index c047f2106..8e8107149 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java @@ -189,8 +189,12 @@ protected void onCompleted(AsynchronousSocketChannel result, SocketAddress addre setSocketOptions(result); session = Objects.requireNonNull(createSession(Nio2Acceptor.this, address, result, handler), "No NIO2 session created"); handler.sessionCreated(session); - sessions.put(session.getId(), session); - session.startReading(); + if (!session.isClosing()) { + sessions.put(session.getId(), session); + session.startReading(); + } else { + handler.sessionClosed(session); + } } catch (Throwable exc) { failed(exc, address);