Roman Vottner created SSHD-669:
----------------------------------

             Summary: Destroying SftpSubsystem on client disconnect will 
terminate external ExecutorService - preventing re-connects
                 Key: SSHD-669
                 URL: https://issues.apache.org/jira/browse/SSHD-669
             Project: MINA SSHD
          Issue Type: Bug
    Affects Versions: 1.2.0
            Reporter: Roman Vottner


In SftpSubsystem on performing the destroy logic (on a client disconnect f.e.), 
the code will also terminate the current executor service as well. 
https://github.com/apache/mina-sshd/blob/master/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/SftpSubsystem.java#L3374-L3379

If the executor service is defined externally and injected via 
SftpSubsystemFactory.setExecutorService(executorService) this will prevent 
re-connects from users or even fail requests issued by other users (in a multi 
user scenario).

In addition to that, as SftpSubsystem's "closed" field is declared as private, 
a child class of SftpSubsystem which needs to customize destroy (in order to 
prevent the executor shutdown) needs to define its own "closed" field version 
on overwriting the parent class and copy & paste the otherwise unneeded 
run-method from the parent as well. Please, change the scope of "closed" to 
protected or privide a getter in the Subsystem to retrieve the current state.

I've tested this only with 1.2.0 yet



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to