perfah created SSHD-1350:
----------------------------

             Summary: NPE when SftpFileSystem is closed (auto-closable)
                 Key: SSHD-1350
                 URL: https://issues.apache.org/jira/browse/SSHD-1350
             Project: MINA SSHD
          Issue Type: Bug
    Affects Versions: 2.15.0
         Environment: Win 11 Pro 64
            Reporter: perfah


Hi! We are doing a simple:
 
{code:java}
try (var children = Files.list(path)) { ... }{code}
 
And find that an exception is thrown occasionally (see stacktrace below). It 
appears that an NPE is triggered when the _close()_ method of the auto-closable 
_SftpFileSystem_ class is called.

Now according to my client, this exception is only seen in the log when there 
are a lot of files on the server (e.g. 140 files), whereas all is working 
smoothly with just a handful. Because the error is thrown repeatedly, our 
service is malfunctioning in the former scenario.

I believe this is a bug because of the following principles:
 * Implementations of AutoClosable#close should remain idempotent: if it's 
already closed, do nothing, don't throw an error the second time, for example.
 * NPEs shouldn't surface to the user of the library.
 * The success of NIO file operations shouldn't be contingent on the number of 
files on the server.

Highly appreciate feedback on the matter. Please let me know if you want some 
more details, or if I am missing something is my analysis.

--
java.lang.NullPointerException: Cannot invoke 
"org.apache.sshd.client.session.ClientSession.getAttribute(org.apache.sshd.common.AttributeRepository$AttributeKey)"
 because the return value of 
"org.apache.sshd.sftp.client.fs.SftpFileSystem.getClientSession()" is null
    at 
org.apache.sshd.sftp.client.fs.SftpFileSystem.close(SftpFileSystem.java:270)
    at 
org.apache.sshd.sftp.client.fs.SftpDirectoryStream.close(SftpDirectoryStream.java:142)
    ... [CLASSIFIED]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to