This is an automated email from the ASF dual-hosted git repository.

twolf pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git


The following commit(s) were added to refs/heads/master by this push:
     new ef0670494 NIO2: use mapSession also in acceptor
ef0670494 is described below

commit ef0670494fae985a37c5320735bb696b1a7801e1
Author: Thomas Wolf <tw...@apache.org>
AuthorDate: Sun Mar 2 23:52:20 2025 +0100

    NIO2: use mapSession also in acceptor
    
    Follow-up to commit 0fed512b: also use mapSession in the acceptor; there
    should be no unsynchronized access.
---
 .../src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java | 7 +++++--
 1 file changed, 5 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 a5ad169f9..2da5be65e 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
@@ -40,6 +40,7 @@ import org.apache.sshd.common.PropertyResolver;
 import org.apache.sshd.common.io.IoAcceptor;
 import org.apache.sshd.common.io.IoHandler;
 import org.apache.sshd.common.io.IoServiceEventListener;
+import org.apache.sshd.common.io.IoSession;
 import org.apache.sshd.common.util.GenericUtils;
 import org.apache.sshd.common.util.ValidateUtils;
 import org.apache.sshd.common.util.io.IoUtils;
@@ -297,8 +298,10 @@ public class Nio2Acceptor extends Nio2Service implements 
IoAcceptor {
                         "No NIO2 session created");
                 sessionId = session.getId();
                 handler.sessionCreated(session);
-                sessions.put(sessionId, session);
-                if (session.isClosing()) {
+                IoSession registered = mapSession(session);
+                if (registered != session) {
+                    session.close();
+                } else if (session.isClosing()) {
                     try {
                         handler.sessionClosed(session);
                     } finally {

Reply via email to